Ajouter un commentaire

Projet Leyden : réduire les temps de démarrage de Java

Par:
fredericmazue

mer, 25/05/2022 - 09:00

Mark Reinhold, Chief Architect of the Java Platform Group chez Oracle, a récemment communiqué sur le projet Leyden. Ce projet s'attaque aux points faibles de Java que sont le temps long du démarrage, le temps long pour atteindre les performances maximales ainsi qu'une forte empreinte mémoire.

La discussion sur ce projet a été lancée il y a deux ans. Mark Reinhold y a proposé de résoudre les problèmes mentionnés ci-dessus en introduisant un concept d'images d'exécution statiques dans la plate-forme Java et dans le JDK. Selon Mark Reinhold les images d'exécution statiques se caractérisent ainsi.

  • Une image statique est un programme autonome, dérivé d'une application et d'un JDK, qui exécute cette application - et aucune autre.
  • Une image statique est un monde fermé en ce qui concerne les classes qu'elle peut charger : à l'exécution, elle ne peut pas charger de classes depuis l'extérieur de l'image, ni créer de classes dynamiquement.

Mais la discussion a montré que la contrainte du monde fermé impose des limites strictes au dynamisme naturel de Java, en particulier sur la réflexion à l'exécution et les fonctionnalités de chargement de classe dont dépendent tant de bibliothèques et de frameworks Java existants. Toutes les applications ne sont pas bien adaptées à cette contrainte, et tous les développeurs ne sont pas prêts à vivre avec. Ainsi, plutôt que d'adopter la contrainte du monde fermé au départ, Mark Reinhold proposé que les travaux soient poursuivis plutôt dans une approche progressive et incrémentale.

Les travaux s'appuieront fortement sur les composants existants du JDK, notamment la JVM HotSpot, le compilateur C2, le partage de données de classe d'application (CDS) et l'outil de liaison jlink.

Mark Reinhold précise toutefois qu'à long terme, le projet Leyden adoptera probablement la contrainte du monde fermé afin de produire des images entièrement statiques. D'ici là, cependant, l'intention est de développer et fournir des améliorations incrémentielles que les développeurs pourront utiliser le plus tôt possible.

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
 BBBB   PPPP   V     V   CCC  DDD  
B B P P V V C D D
BBBB PPPP V V C D D
B B P V V C D D
BBBB P V CCC DDD