Les en-têtes d'objets compacts de Java deviennent une fonctionnalité produit

2025-05-22

Le JEP 519 promeut la fonctionnalité expérimentale « En-têtes d'objets compacts » en fonctionnalité produit complète dans Java. Initialement introduite dans JDK 24 pour optimiser la disposition de l'en-tête d'objet et améliorer les performances, elle a subi des tests approfondis chez Oracle et Amazon, prouvant sa stabilité et ses gains de performances. L'indicateur `-XX:+UnlockExperimentalVMOptions` n'est plus nécessaire pour l'activation. Des extensions futures pour plus de bits d'en-tête d'objet sont prévues, les projets Valhalla et Lilliput fournissant des solutions.

Lire plus
Développement

Démarrage Java plus rapide grâce aux améliorations du profil du cache AOT

2025-05-11

Cette amélioration réduit considérablement le temps de préchauffage des applications Java en collectant les profils d'exécution des méthodes pendant les exécutions d'entraînement de l'application et en les stockant dans le cache AOT. Au démarrage en production, le compilateur JIT peut immédiatement utiliser ces profils pour générer du code natif, éliminant ainsi l'attente de la collecte des profils et permettant un démarrage et des performances de pointe plus rapides. Cette technique ne nécessite aucune modification du code et est compatible avec les commandes de création de cache AOT existantes. Des expériences montrent une réduction de 19 % du temps de préchauffage pour un programme d'exemple simple.

Lire plus
Développement

Java renforcera l'immutabilité des champs finaux

2025-03-31

Pour améliorer la sécurité et les performances des programmes Java, le JDK prévoit de renforcer l'immutabilité des champs finaux. Actuellement, la réflexion profonde peut modifier les champs finaux, ce qui va à l'encontre de l'intention initiale du mot clé final et limite l'optimisation de la JVM. Les futures versions interdiront par défaut la modification des champs finaux par réflexion profonde et émettront des avertissements. Les développeurs pourront activer sélectivement la modification des champs finaux à l'aide de l'option `--enable-final-field-mutation`, mais il est recommandé de l'éviter autant que possible. Cette mesure vise à améliorer la fonctionnalité de "sécurité par défaut" de Java et à maintenir la cohérence avec la conception des classes d'enregistrement.

Lire plus

JEP 483 de Java : Le chargement et la liaison anticipés des classes améliorent le temps de démarrage

2024-12-22

Le JEP 483 améliore considérablement le temps de démarrage des applications Java en chargeant et en liant les classes d'application à l'avance lorsque la JVM HotSpot démarre. Cela est réalisé en surveillant une seule exécution de l'application, en stockant les formes chargées et liées de toutes les classes dans un cache pour une réutilisation lors des exécutions suivantes. Cette fonctionnalité ne nécessite aucune modification du code et offre des améliorations de vitesse substantielles pour les grandes applications serveur, Spring PetClinic affichant une réduction de 42 % du temps de démarrage. Bien qu'il s'agisse actuellement d'un processus en deux étapes, les versions futures simplifieront la création du cache en une seule étape et offriront une configuration d'exécution d'entraînement plus flexible.

Lire plus
Développement