La compilación Just In Time tiene varias ventajas teóricas: tiene más información sobre la máquina, el estado de los indicadores y cómo se usa el código. Le permite evitar la compilación que consume mucho tiempo antes de ejecutar, acelerando el ciclo de desarrollo.¿Cuáles son los inconvenientes de la compilación de JIT?
De forma simplista, la compilación de JIT parece superior como enfoque; hay algunos gastos generales, pero si es lo suficientemente inteligente puede acelerar su código lo suficiente como para compensar eso.
Sin embargo, no creo que esa sea la historia completa. ¿Cuáles son los inconvenientes teóricos y prácticos? Sí, a menudo se menciona un "tiempo de arranque más lento", al igual que el "consumo de memoria aumentado", pero Me pregunto si hay más que eso.
Por ejemplo, ¿el rastreo y la compilación JIT basura la caché de la CPU? Si su programa es grande y realmente no tiene muchas rutas particularmente activas, ¿existe el riesgo de gastar más tiempo de rastreo y JIT-ting de lo que valdría la pena?
Parece probable que alguien haya escrito un artículo sobre esto o sobre la solución de problemas inherentes al JIT. Si alguien tiene medidas, mucho mejor.
Editar: Estoy hablando de la compilación Just In Time en comparación con la compilación anticipada (potencialmente con la optimización dirigida por la retroalimentación), no en comparación con la interpretación.
Lo siento. Por supuesto, un buen JIT es bastante mejor que interpretado, pero estoy hablando de JIT vs AOT compilación. –