BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Actualités Le Projet Leyden Vise A Améliorer Le Temps De Démarrage De Java

Le Projet Leyden Vise A Améliorer Le Temps De Démarrage De Java

L'architecte du langage Java Mark Reinhold a proposé la création d'un nouveau projet OpenJDK nommé Leyden : pour des applications binaires statiques avec un démarrage plus rapide et une mémoire inférieure. Une fois approuvé et terminé, cela permettrait aux développeurs de compiler du code Java (just-in-time) pour obtenir des applications natives (ahead-of-time), offrant des capacités similaires au mode natif de GraalVM.

Le projet bénéficie du soutien conceptuel d'Oracle via Mark Reinhold, ainsi que de RedHat. Suite à la proposition de projet, Andrew Haley, le leader d'OpenJDK de RedHat, a lancé : "c'est une excellente nouvelle. Il est temps de mettre la compilation AOT statique dans le giron. Allons-y !". Un sentiment similaire est venu d'Amazon, Paul Hohensee déclarant "très heureux de voir cette proposition". RedHat est membre du Java Community Process Executive Committee et Amazon est un membre influent de la communauté qui gère une distribution Java, Amazon Corretto. Les utilisateurs de frameworks serverless tels qu'AWS Lambda et Azure Functions bénéficieraient de Leyden, car les opérateurs paient au temps utilisé - les temps de démarrage et d'exécution rapides pourraient réduire le coût des démarrages à froid et ramener les frais par invocation au seuil de coût minimum ou les ramener en dessous.

Leyden et GraalVM travailleraient à travers une chaîne similaire que les développeurs suivent pour écrire et créer des applications :

  1. Les développeurs écrivent du code source personnalisé qui se connecte et s'appuie sur les API des bibliothèques sélectionnées, généralement dans des fichiers JAR.

  2. Le code personnalisé est compilé en bytecode qui est packagé dans un ou plusieurs fichiers JAR.

  3. Leyden introduirait un nouveau chemin divisé pour le fonctionnement des applications :

    1. Les applications pourraient suivre le cours traditionnel pour exécuter le bytecode, optimisant les "points chauds" de l'application en code machine natif pendant l'exécution de l'application.

    2. Une nouvelle opportunité de compiler l'application sur des bibliothèques spécifiques au système d'exploitation pour créer une application native qui s'exécute sur un seul système d'exploitation similaire à d'autres outils de compilation natifs.

Le projet s'appuierait sur et améliorerait les capacités présentes dans Java aujourd'hui, utilisées par les développeurs pour distribuer des applications.

  • javapackager est utilisé pour distribuer des applications avec un JRE intégré et personnalisé pour une seule application. Les utilisateurs finaux n'ont pas besoin d'une installation de Java sur le système pour exécuter chaque application, car les points de lancement de l'application passent par son exécutable java fourni.
  • jaotc est un compilateur expérimental pour certaines plates-formes qui produit un exécutable natif. Leyden peut être développé directement au-dessus de jaotc.

Les avantages des applications compilées en mode natif sont déjà bien visibles dans le framework de RedHat Quarkus : Java supersonique subatomique (Supersonic Subatomic Java). Quarkus exploite l'image native créée via GraalVM pour produire des applications qui sont «supersoniques» au moment de la première demande ou démarrage en tant que fonction serverless et «subatomiques» où l'application compilée en mode natif est plus petite que le bytecode Java d'origine. La page d'accueil de Quarkus répertorie ces mesures dans un graphique lisible sur sa page d'accueil avec des cases pour une comparaison visuelle :

  • En mode JDK, une application CRUD utilisait 145 Mo de RAM.
  • En mode natif, une application CRUD utilise 28 Mo de RAM, soit environ 80% de moins.
  • En mode JDK, l'application CRUD a mis 2,033 secondes pour la première réponse HTTP.
  • En mode natif, l'application CRUD a pris 0,042 seconde, soit une diminution d'environ 98%.

Aucun calendrier n'existe pour l'achèvement de Leyden, permettant au projet d'être axé sur les fonctionnalités plutôt que sur la date. Avec la cadence de publication de six mois de Java, les candidats à l'évaluation apparaîtront dans une version pour établir un cycle de feedback efficace.

 

Evaluer cet article

Pertinence
Style

Contenu Éducatif

BT