JIT e intérprete
JIT vs intérprete
La compilación Just In Time (también conocida como traducción dinámica o JIT) es una técnica utilizada en la informática para mejorar la calidad del rendimiento en tiempo de ejecución de un programa de computadora. Es la fusión de dos ideas encontradas en entornos de ejecución: compilación de bytecode y compilación dinámica (que es un proceso que utilizan algunas implementaciones de lenguaje de programación para obtener un rendimiento mientras un sistema está ejecutando una acción).
Un intérprete describe con mayor precisión la ejecución de una acción a través de un programa de computadora. Hay algunas variaciones en el tipo de acciones que un intérprete ejecuta: Ejecuta directamente el código fuente de un programa; traduce el código fuente en una representación que es una representación intermedia eficiente, y luego ejecuta dicho código; ejecuta código precompilado que ha sido almacenado y creado por un compilador que forma parte del sistema de intérprete.
JIT tiene la capacidad de combinar las ventajas encontradas tanto en la interpretación como en la compilación estática (es decir, antes de tiempo). Como intérprete, JIT puede mejorar el rendimiento mediante el almacenamiento en caché de los bloques de código que se han traducido, en comparación con la simple reevaluación de cada línea u operando en el código cada vez que se produce (como en el lenguaje interpretado). Al igual que el código de compilación estática en el momento del desarrollo, JIT es capaz de volver a compilar el código si este es el plan de acción más ventajoso. Además, en el mismo sentido que la compilación estática, JIT es capaz de hacer cumplir las garantías de seguridad.
Al igual que los compiladores, los intérpretes tienen la capacidad de traducir el código. Ambos son los principales métodos de implementación de lenguajes de programación; sin embargo, las categorías de "compilador" o "intérprete" no son distintas (para sus funciones duales como traductores de código). La desventaja más obvia de usar un intérprete es que una vez que se interpreta el código, el programa inevitablemente se ejecutará más lento que cuando simplemente compila el código; sin embargo, lleva mucho menos tiempo interpretar la codificación que compilar y ejecutarla (especialmente cuando se trata de hacer prototipos y probar el código).
En términos generales, JIT proporciona un rendimiento mucho mejor que los intérpretes y, en muchos casos, proporciona un rendimiento mucho mejor que los compiladores estáticos. Sin embargo, su superioridad sobre JIT no le impide tener algunas desventajas importantes: hay un ligero retraso al ejecutar una aplicación inicialmente (un efecto secundario de tomarse un tiempo para cargar y compilar el código de bytes). Eventualmente generará una mejor codificación; sin embargo, el retraso inicial inherente al hacerlo aumentará con la calidad de la codificación.
Resumen:
1. JIT es una técnica utilizada para mejorar la calidad del rendimiento del tiempo de ejecución en un entorno de ejecución; un intérprete define la ejecución de una acción a través de un programa de computadora.
2. JIT combina las ventajas de la interpretación y la compilación estática; un intérprete puede traducir el código como un compilador, pero en detrimento de la velocidad del programa.