0Pricing
Java Academy · Lezione

Cos'è GraalVM

Una VM poliglotta ad alte prestazioni

Cos'è GraalVM è una lezione Java Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Java Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Java Academy include 4 lezioni in totale.

Che cos'è GraalVM

GraalVM è una distribuzione JDK ad alte prestazioni basata su un moderno compilatore just-in-time chiamato Graal. Esegue il normale codice Java più velocemente in molti carichi di lavoro e aggiunge due funzionalità principali: esecuzione polyglot e compilazione nativa ahead-of-time.

Un JDK compatibile senza modifiche

GraalVM è un JDK completo. Gli strumenti esistenti javac, java e il bytecode funzionano senza modifiche. La differenza sta nel compilatore sottostante e negli strumenti aggiuntivi inclusi, come 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"));
    }
}

Il compilatore Graal

Il JIT Graal è scritto in Java. Esegue ottimizzazioni aggressive, come l'inlining avanzato, l'analisi parziale dell'escape e l'ottimizzazione speculativa, spesso superando il compilatore C2 tradizionale con codice fortemente astratto e ricco di allocazioni.

Polyglot con Truffle

GraalVM include il framework Truffle, che consente a più linguaggi di essere eseguiti sulla stessa VM e persino di chiamarsi a vicenda. Esistono implementazioni per JavaScript, Python, Ruby, R e WebAssembly. I valori possono attraversare i confini tra linguaggi con un overhead ridotto.

Esempio di polyglot (concettuale)

Con l'API polyglot create un Context e valutate il codice in un altro linguaggio, quindi leggete il risultato in Java. Le classi si trovano in 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());
        }
    }
}

Immagine nativa

Lo strumento native-image compila Java in anticipo in un eseguibile nativo autonomo. Non c'è una JVM in fase di esecuzione, né il caricamento delle classi o il riscaldamento del JIT: il programma si avvia in millisecondi.

Edizioni

GraalVM è disponibile nella gratuita Community Edition e nella distribuzione Oracle GraalVM, che offre ottimizzazioni aggiuntive. Entrambe includono native-image; per la maggior parte degli usi didattici e per molti impieghi in produzione, la build della community è sufficiente.

Perché è importante per il cloud

L'avvio rapido e il basso consumo di memoria rendono le immagini native ideali per le funzioni serverless, le CLI e i container che possono scalare fino a zero. Un servizio Java nativo può avviarsi rapidamente quanto un binario Go comparabile, eliminando un limite storico della JVM.

JIT a confronto con AOT

Coesistono due modelli di esecuzione:

  • JIT (il compilatore Graal) ottimizza a runtime usando la profilazione durante l'esecuzione: offre il throughput massimo per i server a esecuzione prolungata.
  • AOT (native-image) compila prima dell'esecuzione: offre il miglior avvio e il minor consumo di memoria.

Supporto dei framework

Framework moderni come Spring Boot, Quarkus e Micronaut offrono un supporto di prima classe per native-image. Precalcolano la configurazione in fase di build, così l'applicazione può essere compilata senza problemi in un binario nativo.

Scegliere GraalVM

Adottate GraalVM se desiderate un throughput JIT più elevato con codice ricco di astrazioni, avete bisogno dell'interoperabilità polyglot o volete eseguibili nativi per distribuzioni con avvio rapido e basso consumo di memoria. È un sovrainsieme di un JDK standard, quindi l'adozione comporta pochi rischi.

Verifica rapida

Verificate la vostra comprensione di GraalVM.

Riepilogo

Avete conosciuto GraalVM:

  • Un JDK completo basato sul compilatore ad alte prestazioni Graal JIT.
  • Truffle abilita l'esecuzione polyglot e le chiamate tra linguaggi.
  • native-image compila Java in anticipo in eseguibili nativi.
  • Il JIT privilegia il throughput per le esecuzioni prolungate; l'AOT privilegia l'avvio e il consumo di memoria.
  • Framework come Spring Boot, Quarkus e Micronaut supportano le build native.

Domande Frequenti

La lezione «Cos'è GraalVM» è gratuita?

Sì — il testo completo di «Cos'è GraalVM» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Java Academy, passa a CoddyKit PRO. Il corso Java Academy include 4 lezioni in totale.

Cosa imparerò in «Cos'è GraalVM»?

Una VM poliglotta ad alte prestazioni Eserciti Java Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Java Academy?

Non è richiesta alcuna esperienza precedente. Java Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Cos'è GraalVM»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Java Academy?

Sì. Ogni lezione Java Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Cos'è GraalVM
  2. Creare una native image
  3. Reflection e configurazione
  4. Compromessi della native image
← Torna a Java Academy