[07/05/2022] GraalVM 22.1, la última versión del runtime políglota construido por Oracle, presenta una primera iteración del modo de construcción rápida para Native Image, la tecnología de la plataforma para la compilación anticipada (AOT) del código Java en un ejecutable independiente.
GraalVM 22.1 se presentó el 26 de abril. Con el modo de compilación rápida, el compilador trabaja en modo económico con menos optimizaciones, lo que resulta en tiempos de compilación mucho más rápidos. Native Image AOT compila el código Java en un ejecutable independiente, conocido como imagen nativa. Dependiendo del tamaño y la complejidad de la aplicación que se compila, el proceso de compilación puede llevar un tiempo considerable, ya que GraalVM tiene que analizar y optimizar una aplicación completa y sus dependencias. Los desarrolladores de GraalVM descubrieron que el modo de compilación rápida dio lugar a una mejora del 43% en el tiempo de compilación general.
El modo de compilación rápida solo se recomienda para fines de desarrollo, ya que optimiza el tiempo de compilación a expensas del rendimiento en tiempo de ejecución y el uso de la memoria. Para la producción, los desarrolladores deben utilizar el modo de compilación por defecto. Los planes prevén que se trabaje más en el modo de compilación rápida para mejorar el rendimiento en tiempo de ejecución y acelerar otros procesos de la fase de compilación. Los tiempos de compilación de ejecutables también son más rápidos en GraalVM 22.1, gracias a las mejoras de rendimiento y la reducción de la huella de memoria de la native-image.
GraalVM Community Edition se puede descargar desde GitHub. Las compilaciones de GraalVM Enterprise pueden descargarse de Oracle Technology Network.
Otras novedades y mejoras en GraalVM 22.1:
- GraalVM Community Edition está disponible para Apple Silicon en forma de vista previa.
- El comportamiento por defecto de Native Image se ha alineado más con el comando java. Una construcción ya no falla si una clase no puede ser encontrada en el classpath o en la ruta del módulo. Esto puede ser deseable porque una aplicación puede definir un comportamiento diferente si ciertas clases no están disponibles.
- La configuración de reflexión condicional para Native Image, en la que una entrada de configuración de clase se aplica solo si se satisface una condición proporcionada, ahora se puede generar a través de un agente de rastreo. Con la configuración de reflexión condicional, una entrada de configuración de clase se aplica solo si se satisface una condición proporcionada, como typeReachable, haciendo la configuración más precisa y reduciendo el tamaño del ejecutable.
- El almacenamiento en caché del motor experimental es compatible con las aplicaciones Node.js en GraalVM Enterprise Edition.
- El tiempo de ejecución de Python añade soporte para módulos congelados, lo que hace que el inicio de la ejecución sea un 30% más rápido y utilice un 40% menos de memoria. El cambio significa que los módulos utilizados con frecuencia se analizan, se convierten en bytecode y se almacenan dentro del binario. Durante el inicio, el tiempo de ejecución carga este bytecode directamente, evitando la sobrecarga.
Basado en el artículo de Paul Krill (InfoWorld) y editado por CIO Perú