Java 10 : Améliorer les performances avec le partage de données de classe (AppCDS)
JEP 310 — Partage des données de classe d'application (Application Class-Data Sharing)
Au démarrage, la JVM charge les classes en mémoire. Avec de nombreux JAR/classes, un délai notable apparaît pour la première requête. En architecture serverless, ce délai impacte le temps de démarrage (critique).
Java possède déjà le CDS (Class-Data Sharing). Java 10 étend cela avec AppCDS : permet de placer les classes d'application dans une archive partagée, réduisant le temps de démarrage et l'empreinte mémoire en partageant les métadonnées de classe entre plusieurs processus Java.
Processus en 3 étapes
1. Créer la liste des classes à archiver
$ java -Xshare:off -XX:+UseAppCDS -XX:DumpLoadedClassList=welcome.lst -cp welcome.jar Greeting
2. Créer l'archive AppCDS
$ java -Xshare:dump -XX:+UseAppCDS -XX:SharedClassListFile=welcome.lst -XX:SharedArchiveFile=welcome.jsa -cp welcome.jar
3. Utiliser l'archive AppCDS
$ java -Xshare:on -XX:+UseAppCDS -XX:SharedArchiveFile=welcome.jsa -cp welcome.jar Greeting
Cette fonctionnalité est particulièrement précieuse pour les microservices, conteneurs et fonctions serverless où le démarrage à froid doit être minimal.
Java
- Maîtriser les opérateurs Java : Types, syntaxe et exemples pratiques
- Commentaires Java : Types, utilisation et bonnes pratiques
- Maîtriser la boucle for améliorée en Java : Syntaxe, exemples et bonnes pratiques
- Maîtriser les chaînes de caractères en Java : Création, méthodes et bonnes pratiques
- Maîtriser les interfaces Java : concepts, implémentation et bonnes pratiques
- Maîtriser les classes internes anonymes en Java : définition, syntaxe et exemples pratiques
- Maîtriser le try-with-resources Java : gestion automatique des ressources expliquée
- Annotations Java expliquées : types, placement et exemples pratiques
- Assertions Java : guide pratique pour détecter les bugs et assurer la fiabilité du code