IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)

Vous �tes nouveau sur Developpez.com ? Cr�ez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et �tre connect� pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Cr�ez-en un en quelques instants, c'est enti�rement gratuit !

Si vous disposez d�j� d'un compte et qu'il est bien activ�, connectez-vous � l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oubli� ?
Cr�er un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

OpenJDK propose le projet Galahad qui vise � fusionner la compilation native de GraalVM,
Pour fournir la capacit� de compiler les programmes Java en code machine avant l'ex�cution

Le , par Bill Fassinou

61PARTAGES

5  0 
OpenJDK propose le projet Galahad qui vise � fusionner la compilation native de GraalVM
pour fournir la capacit� de compiler les programmes Java en code machine avant l'ex�cution

Le projet OpenJDK a propos� un nouveau projet (Galahad) pour fusionner certaines parties du code de GraalVM Community Edition dans le kit de d�veloppement Java. L'�quipe a annonc� que l'objectif initial du projet Galahad est de contribuer � la derni�re version du compilateur juste-�-temps (JIT) de GraalVM et de l'int�grer comme alternative au compilateur JIT existant de la machine virtuelle HotSpot. Il s'agit du dernier d�veloppement d'un effort de longue haleine visant � fournir une capacit� de compiler les applications Java en code machine avant l'ex�cution du programme.

GraalVM est une machine virtuelle Java (JVM) et un kit de d�veloppement Java (JDK) cr��s par Oracle. Il s'agit d'un environnement d'ex�cution haute performance qui permet d'am�liorer les performances et l'efficacit� des applications. Ses objectifs comprennent : l'�criture d'un compilateur plus rapide et plus facile � maintenir, l'am�lioration des performances des langages qui s'ex�cute sur la JVM, la r�duction des temps de d�marrage des applications, l'int�gration du support multilangue dans l'�cosyst�me Java, ainsi que la fourniture d'un ensemble d'outils de programmation pour ce faire. GraalVM ajoute un compilateur optimisant au JDK.

Ce qui permet d'optimiser les performances des diff�rents langages et d'assurer l'interop�rabilit� des applications polyglottes. Outre la prise en charge du code Java, GraalVM prend �galement en charge d'autres langages de programmation, notamment Scala, Kotlin, Groovy, Clojure, R, Python, JavaScript et Ruby. Essentiellement, il permet aux d�veloppeurs d'ex�cuter efficacement du code dans plusieurs langages et biblioth�ques au sein d'une seule et m�me application. Le projet OpenJDK veut d�sormais tirer parti de ces fonctionnalit�s et a annonc� r�cemment une feuille de route qui lui permettra de prendre en charge GraalVM.



La prise en charge de GraalVM vise essentiellement � offrir aux utilisateurs d'OpenJDK la capacit� de compiler les applications Java en code machine avant l'ex�cution du programme. � premi�re vue, cela semble quelque peu �trange. En effet, l'une des premi�res choses qu'un nouveau d�veloppeur Java apprend est que "le langage de programmation Java ne compile pas en code machine, mais plut�t en bytecode JVM". Cette simple maxime a des implications profondes, dont la plus fondamentale est que la plateforme Java s'appuie sur un puissant environnement d'ex�cution dynamique - la JVM - pour l'ex�cution.

Cet environnement d'ex�cution permet des techniques d'ex�cution dynamique, telles que le chargement de classes et la r�flexion, qui n'ont pas vraiment d'analogues dans les langages compil�s en avance sur le temps (AOT). En fait, c'est le point de d�part de tout ce qui fait la puissance de Java, et ce qui l'a rendu si r�volutionnaire lorsqu'il est arriv� sur la sc�ne du logiciel, il y a environ 25 ans. Malgr� cela, il y a toujours eu un int�r�t pour la possibilit� de compiler directement les programmes Java en code machine et de les ex�cuter de mani�re autonome sans JVM.

Il y a plusieurs raisons � ce d�sir : r�duire le temps de pr�chauffage des applications Java pour qu'elles atteignent leurs performances maximales, r�duire les besoins en m�moire des applications Java, ou m�me simplement un d�sir g�n�ral d'�viter d'utiliser des ressources pour des sous-syst�mes d'ex�cution dont une application peut ne pas avoir besoin. Plusieurs projets ont tent� de concr�tiser cette possibilit�. Le plus r�cent, et sans doute le plus r�ussi � ce jour, est le projet GraalVM. Ce projet n'est pas issu d'OpenJDK, mais d'un projet de recherche d'Oracle Labs. La premi�re version de production, GraalVM 19.0, est arriv�e en mai 2019.

Depuis lors, GraalVM fonctionne comme un projet ind�pendant avec un cycle de publication diff�rent et une interaction limit�e avec OpenJDK. Deux des rares propositions d'am�lioration de Java (JEP) qui se rapportent � GraalVM sont : JEP 243 (Java-Level JVM Compiler Interface) et JEP 295 (Ahead-of-Time Compilation). Les deux sont arriv�es dans Java 9 et, ensemble, elles ont introduit le compilateur Graal dans la base de code d'OpenJDK. Le compilateur Graal est l'un des principaux composants de GraalVM. C'est un compilateur qui op�re sur le bytecode Java et produit du code machine. Il peut fonctionner en mode JIT ou AOT.

Dans le premier cas, il peut �tre utilis� � la place de C2. Rappelons que Graal est lui-m�me �crit en Java, contrairement aux autres compilateurs JIT disponibles pour la JVM qui sont �crits en C++. Graal a �t� mis � disposition en tant que compilateur JIT exp�rimental bas� sur Java dans Java 10. Toutefois, dans Java 17 (publi� en septembre 2021), les formes exp�rimentales des compilateurs AOT et JIT ont �t� supprim�es. Malgr� cela, l'interface exp�rimentale du compilateur JVM au niveau Java (JVMCI) a �t� conserv�e, de sorte qu'il reste possible d'utiliser des versions du compilateur Graal construites en externe pour la compilation JIT.

La derni�re annonce marquera, si elle se d�roule comme pr�vu, le retour de Graal dans la base de code d'OpenJDK. Cependant, ce qui est peut-�tre plus significatif, c'est le processus GraalVM et les changements apport�s au projet. Galahad sera g�r� comme un sous-projet d'OpenJDK et maintiendra un d�p�t s�par� qui se basera p�riodiquement sur le d�p�t principal. Lorsque les fonctionnalit�s seront pr�tes, elles seront migr�es vers le d�p�t principal. Il s'agit du m�me mod�le qui a �t� utilis� avec succ�s par des projets de longue haleine tels que Loom et Lambda. Galahad vise le JDK 20 comme base de r�f�rence initiale.

Pour l'instant, Galahad se concentre sur la contribution de la derni�re version du compilateur JIT de GraalVM et son int�gration comme alternative au compilateur C2. Plus tard, la technologie de compilation AOT n�cessaire sera ajout�e afin de rendre le compilateur JIT Graal disponible instantan�ment au d�marrage de la JVM. Il convient de noter que toute la base de code de GraalVM ne sera pas engag�e - seulement les composants JIT et AOT de base, ainsi que l'outil Native Image. Les fonctionnalit�s propri�taires d'Oracle pr�sentes dans GraalVM Enterprise Edititon ne devraient pas �tre donn�es au projet.

Sources : Le projet Galahad, GraalVM

Et vous ?

Que pensez-vous du projet Galahad ?
Quels impacts pourrait-il avoir sur la productivit� des utilisateurs d'OpenJDK ?

Voir aussi

OpenJDK envisage des traces de pile asynchrones pour Java, elles permettent d'inclure des informations sur les trames de pile Java et natives

D�veloppeurs Java : la version d'OpenJDK de Microsoft est d�sormais disponible et inclut des binaires pour Java 11 bas�s sur OpenJDK 11.0.11

Le JDK 16 est d�j� en cours de d�veloppement, bien que les travaux sur le JDK 15 continuent, et devrait arriver avec la prise en charge des fonctionnalit�s du C++ 14
Vous avez lu gratuitement 0 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer � vous proposer des publications.

Une erreur dans cette actualit� ? Signalez-nous-la !