Crédit : Rawpixel
Avec la version 22.0 fraîchement lancée du polyglotte GraalVM développé par Oracle runtime, les concepteurs du projet open source visaient à améliorer l’expérience des développeurs.
Lancé le 24 janvier pour JDK 11 et JDK 17, les versions les plus récentes de prise en charge à long terme de Java standard, GraalVM 22.0 Neighborhood Edition peut être téléchargé depuis GitHub. Les constructions commerciales de GraalVM 22.0 sont facilement disponibles auprès d’Oracle.
Un élément essentiel de la version est l’innovation Native Image de GraalVM, qui assemble le code Java à l’avance dans des exécutables autonomes, avec de nombreux langages de programme pris en charge . Pour simplifier la vie des développeurs, les développeurs de GraalVM ont travaillé pour minimiser les temps de construction d’image et l’utilisation de la mémoire au cours des deux versions précédentes.
Dans GraalVM 22.0, des modifications ont été apportées pour minimiser la taille de l’image, en utilisant une approche d’encodage plus compressée pour les métadonnées de trame de pile afin de réduire la taille de toutes les images. Dans l’édition GraalVM Business, une application optimisée de String.format()
va encore plus loin, offrant le choix de rendre les classes de localisation inaccessibles pour réduire sensiblement la taille des images.
GraalVM 22.0 aussi modifie la sortie de développement pour Native Image, qui décompose désormais la procédure de construction en phases et visualise l’étape existante, révélant les pannes de code et de tas et les statistiques de la construction. De plus, l’innovation Native Build Tools pour GraalVM a été dotée d’améliorations telles qu’une meilleure combinaison avec l’agent natif.
GraalVM 22.0 modifie également la méthode utilisée par le compilateur pour traiter les informations de profilage. Développé comme un compilateur JIT optimisant, le compilateur peut passer en mode AOT (ahead of time), où des optimisations majeures peuvent effectuer un travail raisonnable même en l’absence de profils. Cela aide les langages Truffle dans les cas où les modèles non profilés finissent par être chauds, et dans Native Image sans optimisations guidées par le profil.
Autres améliorations dans GraalVM 22.0 :
- Pour Java et le compilateur, une toute nouvelle optimisation de la rotation des boucles transforme les boucles non comptées en boucles comptées pour bénéficier d’optimisations telles que la vectorisation et le déroulement partiel. Cette optimisation est désactivée par défaut.
- Dans l’édition Business, les isolats polyglottes et d’autres fonctionnalités permettent l’isolement de la charge entre les applications hôtes et invitées. Les isolats améliorent les temps de démarrage, de sécurité et de préchauffage pour les langages Truffle.
- Le mode ECMAScript 2022 est autorisé par défaut.
- La mise en cache du moteur auxiliaire dans JavaScript et Node.js en mode natif supprime échauffement des programmes. L’échauffement provient d’opérations telles que le chargement et l’analyse.
- Le runtime WebAssembly utilise désormais l’API Truffle Frame.
- Pour Python, les constructeurs de maison GraalVM continuent de gérer la compatibilité de GraalVM Prise en charge de l’environnement d’exécution Python et des modules d’extension, avec une assistance incluse pour les modules
pyexpat
et_csv
. - La prise en charge de Ruby 3.0 a été ajoutée. De même, l’interprétation Ruby est plus rapide.
Toute l’actualité en temps réel, est sur L’Entrepreneur