Master
Herramientas

Imagen nativa de Graal

Published: Apr 13, 2021
Apr 2021
Evaluar?

La Imagen Nativa de Graal es una tecnología que compila código Java en un binario nativo de un sistema operativo, en la forma de un ejecutable enlazado estáticamente o de una biblioteca compartida. Una imagen nativa está optimizada para reducir la huella de memoria y el tiempo de inicio de una aplicación. Nuestros equipos han usado con éxito las imágenes nativas de Graal, ejecutándolas como pequeños contenedores Docker, en la arquitectura sin servidor (serverless architecture) donde reducir el tiempo de inicio es importante. Aunque se diseñó para utilizarse con lenguajes de programación como Go o Rust que se compilan nativamente y requieren de tamaños pequeños de binarios y de tiempos de inicio cortos, la imagen nativa de Graal puede ser igualmente útil para equipos que tienen otros requerimientos y que quieren usar lenguajes basados en la JVM.

El generador de imágenes nativas de Graal, native-image, soporta lenguajes basados en la JVM, como Java, Scala, Clojure y Kotlin, y genera ejecutables para múltiples sistemas operativos como macOS, Windows y varias distribuciones de Linux. Ya que se trabaja en un "mundo" que se asume "cerrado", donde todo el código se conoce en tiempo de compilación, se necesitan configuraciones adicionales para que características como la reflexión o la carga dinámica de clases funcionen, ya que no se pueden deducir los tipos en tiempo de compilación a partir del código mismo.