AccueilActualités informatiqueLa machine virtuelle GraalVM 22.0 réduit les images, mise sur les actions...

La machine virtuelle GraalVM 22.0 réduit les images, mise sur les actions GitHub

Oracle a publié GraalVM 22.0. La dernière version de la machine virtuelle apporte une connexion à GitHub Actions et continue à travailler sur la réduction des images natives, mais il y a aussi quelques nouveautés pour les langages de programmation autres que Java. Ainsi, la version 22.0 de JavaScript active par défaut le mode ECMAScript 2022 et augmente le temps d’exécution de Node.js à la version 14.18.1. Entre-temps, la version Ruby atteint la version 3.0 et en Python, il est désormais possible d’utiliser les modules pyexpat ainsi que _csv utiliser.

La machine virtuelle GraalVM est basée sur la HotSpot Java Virtual Machine (JVM), mais y ajoute des composants supplémentaires comme un compilateur Just-in-Time (JIT). Elle doit accélérer l’exécution d’applications écrites en Java et dans d’autres langages JVM. Elle n’est toutefois pas limitée à ces langages, mais peut également être utilisée avec JavaScript, Ruby ou Python par exemple, grâce au Language Implementation Framework Truffle. Il devrait également être possible de combiner différents langages au sein d’une même application.

Sommaire

La version précédente de GraalVM 21.3 avait déjà permis de réduire la taille des images natives. GraalVM les propose comme alternative à l’exécution de bytecode dans la JVM classique et mise pour cela sur un compilateur AOT (Ahead-of-Time). La version actuelle 22.0 poursuit le travail entamé et doit permettre de réduire encore la taille des images en introduisant un encodage plus compressé pour les métadonnées de la pile. Selon les éditeurs, l’édition Enterprise doit en outre intégrer une implémentation modifiée de String.format() contribue à une réduction supplémentaire. Cette nouveauté devrait rendre les classes de localisation inaccessibles aux petites images comme « Hello World ».

En outre, GraalVM 22.0 se consacre aux exigences de mémoire des fichiers exécutables natifs. L’exécution d’images natives se fait dans GraalVM sur le système d’exécution fourni, qui contient tous les composants nécessaires, y compris la gestion de la mémoire. La nouvelle politique de Garbage Collection pour le Serial Garbage Collector (Serial GC), introduite pour la première fois dans la version précédente 21.3, est désormais activée par défaut, ce qui devrait réduire la taille maximale RSS (Resident Set Size) des fichiers exécutables natifs jusqu’à 30 %.

L’équipe GraalVM a lancé une Action GitHub officielle. Les actions GitHub permettent d’automatiser les flux de travail du développement logiciel, par exemple pour l’intégration continue/la livraison continue (Continuous Integration/Continuous Delivery, CI/CD), et différentes actions peuvent être combinées pour former un flux de travail personnalisé. La nouvelle action GitHub pour GraalVM sert à mettre en place l’édition communautaire de GraalVM et supporte les caractéristiques de GraalVM comme les images natives et les langages Truffle. Elle exporte une $GRAALVM_HOME-et définit une variable d’environnement $JAVA_HOME par défaut à $GRAALVM_HOMEce qui permet de créer, de tester et de déployer des applications. Étant donné que l’action GitHub $PATH-étend la variable d’environnement Truffle, ce qui permet d’appeler directement les langages et outils Truffle.

L’annonce de la nouvelle version de GraalVM montre un exemple d’utilisation de l’action GitHub dans un workflow :

steps:
  - uses: actions/checkout@v2
  - uses: graalvm/setup-graalvm@v1
    with:
      version: '22.0.0.2'
      java-version: '17'
      components: 'native-image'
      github-token: ${{ secrets.GITHUB_TOKEN }}
  - name: Example step
    run: |
      echo "GRAALVM_HOME: $GRAALVM_HOME"
      echo "JAVA_HOME: $JAVA_HOME"
      java --version
      native-image --version

GraalVM 22.0 est compatible avec JDK 11 et JDK 17 et peut être téléchargé comme GraalVM Community Edition sur GitHub ainsi que comme Oracle GraalVM Enterprise Edition. En outre, des mises à jour de GraalVM pour macOS sont disponibles via Homebrew Tap for GraalVM et Visual Studio Code sous la forme de l’extension GraalVM Extension Pack for Java.

Selon la feuille de route, la branche 22.x devrait recevoir une nouvelle version de fonctionnalités à chaque trimestre de l’année 2022, soit quatre au total. La quatrième Feature Release est considérée comme la Maintenance Release, qui reçoit des corrections de bugs pour les dix-huit mois à venir. La version actuelle avec Long-Term Support (LTS) est la version 21.3 parue en octobre dernier, la prochaine version LTS prévue est la version 23.3 prévue pour octobre 2023.

Toutes les autres informations sur la version actuelle de GraalVM 22.0 peuvent être trouvées dans l’annonce.

Plus d'articles