GraalVM es una herramienta que nos ayuda a compilar y ejecutar aplicaciones poliglota con alto rendimiento. Emplear esta herramienta nos permite mejorar la velocidad de ejecución de un programa y reducir el consumo de memoria.
Soporta múltiples lenguajes de programación como: Java, Javascript, Python, Ruby, R, etc.
Se considera una opción "mejorada" de la JVM tradicional.
Con GraalVM tenemos el concepto de Native Images (imágenes nativas), lo que consiste en la creación de ejecutables nativos a partir de aplicaciones Java; permitiendo un arranque mucho más rápido y menor uso de memoria.
GraalVM y la JVM
Observemos la siguiente tabla comparativa entre GraalVM y la JVM.
| Aspecto | GraalVM | JVM HotSpot |
|---|---|---|
| Arquitectura | Diseño modular con compilador Graal y soporte poliglota. | Optimizada para Java, con JIT clásico y soporte limitado a la JVM. |
| Lenguajes soportados | Java, JavaScript, Python, Ruby, R, LLVM bitcode, entre otros. | Principalmente Java y lenguajes basados en la JVM (Scala, Kotlin, Groovy). |
| Rendimiento | Mejor optimización en tiempo de ejecución, menor consumo de memoria. | Buen rendimiento para Java, pero menos eficiente en arranque y memoria. |
| Native Images | Permite compilar aplicaciones a ejecutables nativos con arranque rápido. | No soporta generación de binarios nativos directamente. |
| Tiempo de arranque | Muy rápido gracias a Native Image, ideal para microservicios. | Más lento, requiere inicialización completa de la JVM. |
| Casos de uso | Microservicios, aplicaciones poliglota, optimización en la nube. | Aplicaciones Java tradicionales, sistemas empresariales robustos. |
| Interoperabilidad | Alta, permite mezclar lenguajes en una misma aplicación. | Limitada a lenguajes JVM. |
Para instalarlo deberás ir a este sitio: https://www.graalvm.org/downloads/
En tu sistema deberás crear la variable de JAVA_HOME y GRAALVM_HOME apuntando al directorio.
Abre una terminal y teclea:
$ java --version
Salida:
java 25.0.2 2026-01-20 LTS Java(TM) SE Runtime Environment Oracle GraalVM 25.0.2+10.1 (build 25.0.2+10-LTS-jvmci-b01) Java HotSpot(TM) 64-Bit Server VM Oracle GraalVM 25.0.2+10.1 (build 25.0.2+10-LTS-jvmci-b01, mixed mode, sharing)
Ejemplo 1. El clásico programa de "Hola, mundo".
HolaMundo.java
public class HolaMundo{ public static void main(String[] args){ String mundo = new String("mundo!!"); System.out.printf("Hola, %s\n",mundo); } }
Compilamos:
$ javac HolaMundo.java
Ejecutamos:
$ java HolaMundo
Salida:
Hola, mundo!!
Ahora creemos una imagen nativa.
$ native-image HolaMundo
El proceso de creación de la imagen nativa puede tardar un tiempo considerable.
Si todo va bien, tendremos un ejecutable llamado holamundo.exe.
Podemos crear un batch con el siguiente contenido:
ejecutable.bat
@echo off echo Start Time: %time% holamundo.exe echo End Time: %time%
Lo ejecutamos y observamos el tiempo que tarda en ejecutarse:
Start Time: 10:55:17.00 Hola, mundo!! End Time: 10:55:17.04
Ahora modifiquemos el bat:
ejecutable.bat
@echo off echo Start Time: %time% java HolaMundo echo End Time: %time%
Lo ejecutamos y observamos la salida:
Start Time: 10:58:58.59 Hola, mundo!! End Time: 10:58:58.92
La ejecución del .exe apenas duró unos 4 milisegundos. Mientras que el .class tuvo una duración de 33 milisegundos.
GraalVM puede ser una herramienta de gran ayuda para desarrolladores backend, pues permite optimizar el funcionamiento de las APIs y mejorar el consumo de recursos de memoria. Continuaremos con este tema en próximas entregas.
Enlaces:
https://www.graalvm.org/https://csantanapr.medium.com/book-review-supercharge-your-applications-with-graalvm-9f330ec38c07
https://github.com/graalvm/graalvm-ce-builds/releases/


No hay comentarios:
Publicar un comentario