0Pricing
Java Academy · Leçon

Qu’est-ce que GraalVM

Une VM polyglotte haute performance

Qu’est-ce que GraalVM est une leçon Java Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Java Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Java Academy comprend 4 leçons au total.

Qu'est-ce que GraalVM

GraalVM est une distribution JDK hautes performances fondée sur un compilateur moderne à la volée appelé Graal. Elle exécute le Java ordinaire plus rapidement pour de nombreuses charges de travail et ajoute deux fonctionnalités majeures : l'exécution polyglotte et la compilation native anticipée.

Un JDK interchangeable

GraalVM est un JDK complet. Vos outils javac, java et votre bytecode existants fonctionnent sans modification. La différence réside dans le compilateur sous-jacent et dans les outils supplémentaires fournis, comme 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"));
    }
}

Le compilateur Graal

Le compilateur à la volée Graal est lui-même écrit en Java. Il réalise des optimisations poussées, comme le remplacement avancé des méthodes par leur corps, l'analyse partielle des échappements et l'optimisation spéculative, et dépasse souvent le compilateur C2 traditionnel avec du code fortement abstrait et riche en allocations.

Polyglotte avec Truffle

GraalVM inclut le framework Truffle, qui permet à plusieurs langages de s'exécuter sur la même VM et même de s'appeler les uns les autres. Des implémentations existent pour JavaScript, Python, Ruby, R et WebAssembly. Les valeurs peuvent franchir les frontières entre langages avec un faible coût.

Exemple polyglotte (conceptuel)

Avec l'API polyglotte, vous créez un Context et évaluez du code dans un autre langage, puis vous récupérez le résultat en Java. Les classes se trouvent dans 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());
        }
    }
}

Image native

L'outil native-image compile Java à l'avance en un exécutable natif autonome. Il n'y a pas de JVM à l'exécution, ni chargement de classes ni phase de chauffe du compilateur à la volée : le programme démarre en quelques millisecondes.

Éditions

GraalVM existe en édition communautaire gratuite et en distribution Oracle GraalVM, qui offre des optimisations supplémentaires. Toutes deux incluent native-image ; pour la plupart des apprentissages et de nombreux usages en production, la version communautaire suffit.

Pourquoi c'est important pour le cloud

Un démarrage rapide et une faible consommation mémoire rendent les images natives idéales pour les fonctions sans serveur, les interfaces en ligne de commande et les conteneurs capables de revenir à zéro. Un service Java natif peut démarrer aussi vite qu'un binaire Go comparable, supprimant ainsi un désavantage historique de la JVM.

Compilation à la volée ou AOT

Deux modèles d'exécution coexistent :

  • La compilation à la volée (le compilateur Graal) optimise à l'exécution à l'aide du profilage en temps réel — elle offre le meilleur débit maximal pour les serveurs fonctionnant longtemps.
  • AOT (native-image) compile avant l'exécution — cette approche offre le meilleur démarrage et la plus faible consommation mémoire.

Prise en charge des frameworks

Les frameworks modernes comme Spring Boot, Quarkus et Micronaut offrent une prise en charge native-image de premier ordre. Ils précalculent la configuration lors de la construction afin que votre application se compile proprement en binaire natif.

Choisir GraalVM

Adoptez GraalVM si vous souhaitez un meilleur débit avec la compilation à la volée pour du code fortement abstrait, si vous avez besoin d'interopérabilité polyglotte ou si vous voulez des exécutables natifs pour des déploiements à démarrage rapide et faible consommation mémoire. Il s'agit d'un surensemble d'un JDK standard, son adoption présente donc peu de risques.

Vérification rapide

Vérifiez votre compréhension de GraalVM.

Récapitulatif

Vous avez découvert GraalVM :

  • Un JDK complet fondé sur le compilateur à la volée hautes performances Graal.
  • Truffle permet l'exécution polyglotte et les appels entre langages.
  • native-image compile Java à l'avance en exécutables natifs.
  • La compilation à la volée privilégie le débit pour les processus longs ; AOT privilégie le démarrage et la mémoire.
  • Des frameworks comme Spring Boot, Quarkus et Micronaut prennent en charge les constructions natives.

Questions Fréquemment Posées

La leçon « Qu’est-ce que GraalVM » est-elle gratuite ?

Oui — le texte complet de « Qu’est-ce que GraalVM » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Java Academy, passe à CoddyKit PRO. Le cours Java Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Qu’est-ce que GraalVM » ?

Une VM polyglotte haute performance Tu pratiques Java Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Java Academy ?

Aucune expérience préalable n'est requise. Java Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.

Combien de temps prend la leçon « Qu’est-ce que GraalVM » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Java Academy ?

Oui. Chaque leçon Java Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Qu’est-ce que GraalVM
  2. Construire une image native
  3. Réflexion et configuration
  4. Compromis des images natives
← Retour à Java Academy