Product Design, Manufacturing & Innovation Resources
Hogar » Compilación Justo a Tiempo (JIT)

Compilación Justo a Tiempo (JIT)

1990
Ingeniero de software optimizando la compilación JIT en un espacio de trabajo moderno.

(Imagen generada únicamente con fines ilustrativos)

Justo a tiempo La compilación (JIT) es un enfoque híbrido que combina características tanto de la compilación como de la interpretación. En lugar de compilar el código por adelantado (AOT), un JIT compilador traduce el código byte a código máquina nativo en tiempo de ejecución, justo antes de que se ejecute. Esto permite realizar optimizaciones dinámicas basadas en el comportamiento real en tiempo de ejecución, lo que a menudo mejora el rendimiento con respecto a la interpretación pura.

Un compilador JIT opera en un entorno de ejecución o una máquina virtual. Al llamar a un método por primera vez, su código de bytes, independiente de la plataforma, se compila en código máquina nativo y se almacena en caché. Las llamadas posteriores a ese método ejecutan directamente el código nativo, evitando la sobrecarga de interpretación. Esto introduce un pequeño retraso en el inicio o el calentamiento, pero puede resultar en mejoras significativas de rendimiento a largo plazo para aplicaciones de larga duración.

La ventaja clave de la compilación JIT es la capacidad de realizar optimizaciones guiadas por perfiles o adaptativas. El tiempo de ejecución puede supervisar la ejecución del código, recopilando estadísticas sobre qué rutas de código son ‘activas’ (ejecutadas con frecuencia) y los tipos de datos que se procesan. Esta información de tiempo de ejecución, que no está disponible para un compilador AOT estático, permite al JIT tomar decisiones de optimización más informadas. Por ejemplo, puede realizar una integración especulativa de llamadas a métodos virtuales si observa que siempre se utiliza un tipo concreto en particular. Si esta suposición resulta ser falsa más adelante, el JIT puede realizar una ‘desoptimización’ y volver a una ruta de ejecución más segura. Esta naturaleza dinámica hace que la compilación JIT sea extremadamente eficaz para los lenguajes orientados a objetos y dinámicos.

UNESCO Nomenclature: 1203
- Informática

Tipo

Software/Algoritmo

Ruptura

Sustancial

Uso

Uso generalizado

Precursores

  • compiladores adelantados (aot)
  • intérpretes
  • código p y otros sistemas de código de bytes
  • Investigación en lenguajes dinámicos como smalltalk y lisp
  • conceptos de máquinas virtuales

Aplicaciones

  • máquina virtual de Java (JVM)
  • .net Common Language Runtime (clr)
  • Motores de JavaScript en navegadores web (por ejemplo, v8)
  • pypy, una implementación de Python de alto rendimiento
  • motores de ejecución de consultas de bases de datos

Patentes:

NA

Ideas para posibles innovaciones

Debido al bloqueo del tráfico generado por bots, que actualmente supera los 40.000 al día, este contenido está reservado para los miembros de la comunidad.
> Iniciar sesión < o > Registrarse < (100% gratis) para acceder a esto, al igual que a todo el demás contenido y herramientas restringidos.

Relacionado con: JIT, compilación justo a tiempo, compilación dinámica, máquina virtual, jvm, clr, v8, código byte, optimización adaptativa, tiempo de ejecución.

Contexto histórico

Compilación Justo a Tiempo (JIT)

1980
1986-01-01
1990
1990
1993
1998
2010
1980
1982-07-01
1988-06-01
1990
1993
1997-04-23
2001
2010

(Si la fecha es desconocida o no es relevante, por ejemplo "mecánica de fluidos", se proporciona una estimación redondeada de su aparición notable)

Invención, innovación y principios técnicos relacionados.

Las imágenes a tamaño completo y las descargas sólo están disponibles, 100% gratis, para los miembros registrados.

> Acceso <