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

Compilación Justo a Tiempo (JIT)

1990
Ingeniero de software que optimiza la compilación JIT en un entorno 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.

A JIT compilador operates within a runtime environment or virtual machine. When a method is called for the first time, its platform-independent bytecode is compiled into native machine code and cached. Subsequent calls to that method execute the fast, native code directly, bypassing the overhead of interpretation. This introduces a small startup or warm-up delay but can result in significant long-term performance gains for long-running applications.

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
Ciencias de la computación

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

  • Compilación JIT predictiva que compila rutas de código incluso antes de que se ejecuten basándose en modelos probabilísticos
  • Compilación JIT entre dispositivos, donde un servidor potente realiza JIT para un cliente de bajo consumo.
  • Compiladores JIT para SQL que reoptimizan los planes de consulta durante la ejecución basándose en estadísticas de datos intermedios
  • Compiladores jit seguros que insertan comprobaciones de seguridad en tiempo de ejecución y entornos aislados en el código generado
  • Compiladores jit para archivos de configuración (por ejemplo, nginx, apache) para acelerar el manejo de solicitudes
  • compiladores jit conscientes de la energía que eligen optimizaciones para equilibrar el rendimiento y el consumo de energía
  • compiladores jit que apuntan a FPGA y reconfiguran el hardware en tiempo de ejecución
  • compiladores jit desoptimizadores que pueden volver a una compilación más simple si una suposición de optimización resulta falsa
  • Compilación JIT distribuida para arquitecturas de microservicios
  • compiladores jit que generan código para ejecución en GPU sobre la marcha
Related to: JIT, justo a tiempo compilation, dynamic compilation, virtual machine, jvm, clr, v8, bytecode, adaptive optimization, runtime.

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)

décimo año aniversario

Las imágenes en tamaño completo y las descargas solo están disponibles, de forma totalmente gratuita, para los miembros registrados.

> Acceso <