4D Training & Consultancy

Développement logiciel

Optimisation et diagnostic des performances de la JVM

Formation avancée de diagnostic pour les ingénieurs responsables de systèmes Java en production. Les participants mesurent avant de régler : structure mémoire, ramasse-miettes, contention de threads et pression d'allocation sont analysés avec Flight Recorder, heap dumps et benchmarks, non avec des options copiées sur un forum.

4 joursPrésentiel interne, en ligne ou sur mesureÉquipes corporate et groupes professionnelsNiveau: Avancé

Aperçu

Un apprentissage pratique pour le transfert en situation de travail.

La plupart des travaux de performance Java échouent pour une seule raison : l'équipe modifie des options avant de savoir où passe le temps. On augmente le tas pour masquer une fuite, on change de ramasse-miettes pour résoudre une contention, on double la capacité pour absorber un défaut d'allocation, et un benchmark mesure la chauffe du JIT au lieu du code visé. Cette formation instaure d'abord une discipline de mesure. Les participants lisent journaux de GC et profils Flight Recorder, analysent des heap dumps pour localiser les objets retenus, diagnostiquent contention et famine de threads, et arbitrent entre débit et latence avec des chiffres qui justifient chaque changement.

Prérequis

Plusieurs années d'expérience en développement ou en exploitation Java et familiarité avec l'exécution d'applications Java sur serveur.

Objectifs

  • Interpréter la structure mémoire de la JVM, le comportement d'allocation et les journaux de ramasse-miettes.
  • Choisir et dimensionner un collecteur, G1, ZGC ou Parallel, en fonction d'un objectif déclaré de latence ou de débit.
  • Profiler CPU, allocation et contention de verrous avec JDK Flight Recorder et Mission Control.
  • Analyser des heap dumps pour identifier fuites, ensembles retenus et véritable détenteur de la mémoire.
  • Diagnostiquer famine de threads, interblocages et épuisement de pools à partir de thread dumps sous charge.
  • Concevoir des benchmarks qui tiennent compte de la chauffe du JIT et produisent des chiffres exploitables.

Public cible

  • Ingénieurs Java confirmés responsables de la performance en production
  • Ingénieurs SRE et plateforme exploitant des charges JVM
  • Architectes applicatifs fixant des objectifs de latence, de capacité et de coût
  • Ingénieurs performance et spécialistes des tests de charge
  • Ingénieurs de support traitant les incidents de production escaladés
  • Responsables techniques comptables du coût d'infrastructure des services Java

Programme

Une structure claire pour le parcours d'apprentissage.

Programme

Les points du programme sont regroupés dans un seul bloc au lieu de créer un module par ligne.

Module 1 : Internes de la JVM et coût réel d'un objet

Zones mémoire d'exécution : tas, metaspace, piles de threads et mémoire native

Disposition des objets, taille d'en-tête et coût réel d'une allocation

Niveaux de compilation JIT, inlining et pourquoi les premières mesures induisent en erreur

Analyse d'échappement, déoptimisation et limites de ce que le compilateur peut corriger

Module 2 : Comportement du ramasse-miettes et choix du collecteur

Collecte générationnelle, régions et origine réelle des temps de pause

Réglage de G1 : taille des régions, cibles de pause et allocations humongous

ZGC et collecte à faible latence : le coût en débit et en empreinte mémoire

Lire les journaux GC pour distinguer un problème de dimensionnement d'une vraie fuite

Module 3 : Fuites mémoire et analyse du tas

Capturer des heap dumps en sécurité sur une instance de production active

Arbres de dominateurs, taille retenue et localisation de l'objet qui retient la mémoire

Sources classiques de fuite : caches, variables de thread, écouteurs et chargeurs de classes

Croissance hors tas et mémoire native invisible dans le heap

Module 4 : Profilage avec Flight Recorder et Mission Control

Activer un enregistrement JFR continu avec une surcharge acceptable en production

Lire ensemble les profils CPU, allocation et E/S plutôt qu'isolément

Paramètres d'événements, événements personnalisés et enregistrement d'un incident en direct

Transformer un profil en liste hiérarchisée de changements réellement utiles

Module 5 : Concurrence, contention et comportement des threads

Thread dumps : interblocages, threads bloqués et pools épuisés

Contention de verrous, faux partage et événements de synchronisation contendue

Dimensionnement des executors, profondeur de file et contre-pression sous charge soutenue

Threads virtuels : quelles charges y gagnent et lesquelles s'en trouvent dégradées

Module 6 : Benchmarking, décisions de réglage et capacité

Benchmarks JMH résistant à la chauffe, à l'élimination de code mort et au bruit

Percentiles de latence, omission coordonnée et restitution honnête aux parties prenantes

Limites de conteneur, parts CPU et ergonomie de la JVM sous cgroups

Consigner une décision de réglage pour que l'équipe puisse la réexaminer avec des preuves

Supports fournis

  • Manuel de formation, exemples de code commentés et notes de référence
  • Environnement de laboratoire et dépôts de démarrage
  • Exercices, check-lists et modèles de code réutilisables
  • Certificat de participation 4D
  • Accompagnement technique après la formation

Options de formation

Les programmes peuvent être organisés en entreprise, en ligne ou dans un format hybride selon le calendrier, la localisation et les objectifs de vos équipes. Lorsqu'un certificat ou un examen externe est inclus, les règles et frais de certification restent soumis aux politiques de l'organisme certificateur, tandis que 4D assure la formation et l'accompagnement à la préparation.

Pourquoi choisir 4D

4D enseigne cette formation sur des charges instrumentées plutôt que sur des diapositives : les participants provoquent délibérément fuites, contentions et régressions de temps de pause, puis les traquent avec les outils qu'ils utiliseront à trois heures du matin. Lorsque vous pouvez les fournir, les formateurs partent de vos propres journaux GC et enregistrements, afin que les décisions de réglage sortent de la salle déjà appliquées.

Contacter 4D

Planifiez le bon parcours de formation ou de conseil pour votre équipe.

Partagez quelques détails et 4D orientera votre demande vers la formation, le conseil, l’évaluation, Phoenix ou un programme sur mesure.