¿Por qué doesnt compilador JIT (Java) Registrar los resultados?

Axel Coon:

A medida que estudiaba sobre compilador JIT desde aquí: ¿Qué hace un just-in-time (JIT) hacer compilador? y

no hay .exe o * * .dll generado por el compilador JIT de Java para Windows. Se escribe las instrucciones del procesador a la memoria (RAM) y se ejecuta desde allí. No hay necesidad de crear un archivo PE independiente con file-encabezados y todo lo

Mi pregunta es ¿POR qué no compilador JIT (Java) Registrar los resultados? ¿No es útil para almacenar código compilado para ahorrar tiempo para el próximo lanzamiento?

(Mi pregunta es diferente del mencionado anteriormente, porque hice hincapié en ¿POR )

Hulk:

El ouput de un JIT puede ser diferente para cada ejecución - que puede optimizar para el patrón de carga actual. A veces, esto le permite optimizar más agresivamente de lo que sería posible para el código precompilado que necesita ser reutilizable.

Si la carga cambia de patrón y la optimización resulta ser inferior al óptimo o incluso negativo, un JIT puede de-Optimizar y posiblemente intentar una optimización diferente

(véase también Acerca de la dinámica de-optimización de HotSpot )

Ahora, puede ser que a veces guardar algo de rendimiento para mantener estos resultados de varias versiones compiladas de todo y volver a utilizarlos más adelante, pero también requeriría una cantidad significativa de libro de mantenimiento para poder averiguar si una sección de código ya ha sido compilado con Actualmente optimizaciones pertinentes.

Supongo que simplemente no se considera la pena el esfuerzo. Es una solución de compromiso entre hacer archivo-IO y compilación generalmente rápido de pequeñas secciones de código.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=187471&siteId=1
Recomendado
Clasificación