0Pricing
Java Academy · Lección

Qué es GraalVM

Una VM políglota de alto rendimiento

Qué es GraalVM es una lección gratuita de Java Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Java Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Java Academy incluye 4 lecciones en total.

Qué es GraalVM

GraalVM es una distribución de JDK de alto rendimiento basada en un compilador moderno just-in-time llamado Graal. Ejecuta Java convencional con mayor rapidez en muchas cargas de trabajo y añade dos capacidades destacadas: la ejecución políglota y la compilación nativa anticipada.

Un JDK compatible de forma directa

GraalVM es un JDK completo. Su javac, java y bytecode existentes funcionan sin cambios. La diferencia está en el compilador subyacente y en las herramientas adicionales que incluye, como native-image.

public class Main {
    public static void main(String[] args) {
        System.out.println("Runs the same on GraalVM as on any JDK");
        System.out.println("Java: " + System.getProperty("java.version"));
    }
}

El compilador Graal

El JIT de Graal está escrito en Java. Realiza optimizaciones agresivas, como el inlining avanzado, el análisis parcial de escapes y la optimización especulativa, y a menudo supera al compilador C2 tradicional en código con muchas abstracciones y asignaciones.

Ejecución políglota con Truffle

GraalVM incluye el framework Truffle, que permite ejecutar varios lenguajes en la misma máquina virtual e incluso hacer que se llamen entre sí. Existen implementaciones para JavaScript, Python, Ruby, R y WebAssembly. Los valores pueden atravesar las fronteras entre lenguajes con poco sobrecoste.

Ejemplo de poliglotismo (conceptual)

Con la API políglota, crea un Context y evalúa código en otro lenguaje; después, lee el resultado en Java. Las clases se encuentran en org.graalvm.polyglot.

// Requires GraalVM polyglot runtime
import org.graalvm.polyglot.*;

public class Main {
    public static void main(String[] args) {
        try (Context ctx = Context.create()) {
            Value sum = ctx.eval("js", "40 + 2");
            System.out.println(sum.asInt());
        }
    }
}

Imagen nativa

La herramienta native-image compila Java por adelantado en un ejecutable nativo independiente. No hay ninguna JVM en tiempo de ejecución ni carga de clases o calentamiento del JIT: el programa se inicia en milisegundos.

Ediciones

GraalVM está disponible como una Community Edition gratuita y como una distribución Oracle GraalVM con optimizaciones adicionales. Ambas incluyen native-image; para la mayoría de los casos de aprendizaje y muchos usos en producción, la compilación de Community Edition es suficiente.

Por qué es importante para la nube

El arranque rápido y el bajo consumo de memoria hacen que las imágenes nativas sean ideales para funciones sin servidor, CLI y contenedores que escalan hasta cero. Un servicio Java nativo puede iniciarse con la misma rapidez que un binario de Go comparable, eliminando una desventaja histórica de la JVM.

JIT frente a AOT

Coexisten dos modelos de ejecución:

  • JIT (el compilador Graal) optimiza en tiempo de ejecución mediante perfiles obtenidos en directo; ofrece el mejor rendimiento máximo para servidores de larga duración.
  • AOT (native-image) compila antes de la ejecución; ofrece el mejor arranque y el menor consumo de memoria.

Compatibilidad con frameworks

Frameworks modernos como Spring Boot, Quarkus y Micronaut ofrecen compatibilidad de primera clase con native-image. Precalculan la configuración en tiempo de compilación para que su aplicación se compile correctamente en un binario nativo.

Elegir GraalVM

Adopte GraalVM si desea un mayor rendimiento JIT en código con muchas abstracciones, necesita interoperabilidad políglota o quiere ejecutables nativos para despliegues con arranque rápido y bajo consumo de memoria. Es un superconjunto de un JDK estándar, por lo que su adopción implica pocos riesgos.

Comprobación rápida

Compruebe su comprensión de GraalVM.

Resumen

Ha conocido GraalVM:

  • Un JDK completo basado en el compilador de alto rendimiento Graal JIT.
  • Truffle permite la ejecución políglota y las llamadas entre lenguajes.
  • native-image compila Java por adelantado en ejecutables nativos.
  • JIT favorece el rendimiento sostenido en ejecuciones largas; AOT favorece el arranque y el consumo de memoria.
  • Frameworks como Spring Boot, Quarkus y Micronaut admiten compilaciones nativas.

Preguntas frecuentes

¿La lección «Qué es GraalVM» es gratis?

Sí — el texto completo de «Qué es GraalVM» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Java Academy, actualiza a CoddyKit PRO. El curso de Java Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Qué es GraalVM»?

Una VM políglota de alto rendimiento Practicas Java Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Java Academy?

No se requiere experiencia previa. Java Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Qué es GraalVM»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Java Academy?

Sí. Cada lección de Java Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Qué es GraalVM
  2. Creación de una imagen nativa
  3. Reflection y configuración
  4. Compromisos de la imagen nativa
← Volver a Java Academy