Le hub JVM · Java · Kotlin
Des articles sur la JVM
Profiling, mémoire et garbage collector, runtime et production, architecture Java et Kotlin. Écrits à partir de vrais problèmes vus en production.
Tous les articles
Faire tenir l'architecture dans le temps Une règle d'architecture que personne ne vérifie ne survit pas à six mois de sprints. Elle ne tient que si elle casse le build, comme n'importe quel autre test. Architecture et conception Lire les logs GC sans outil externe Un fichier gc.log se lit à la main. Une fois qu'on sait décoder la ligne résumé et le détail région par région, on voit un problème avant même d'ouvrir un profiler. Mémoire et garbage collector Les virtual threads en production : ce qui casse vraiment Depuis JDK 24, synchronized n'épingle plus le carrier thread. La plupart des articles en ligne conseillent encore de s'en méfier. Ce qui casse vraiment en prod est ailleurs. Runtime et production Régler la JVM en conteneur Une appli qui tourne bien en local mais se fait tuer en Kubernetes, c'est presque toujours une histoire de limites cgroup mal lues et de heap mal dimensionnée. Ce qu'il faut régler, et pourquoi. Runtime et production Diagnostiquer une fuite mémoire avec un heap dump Quand la mémoire monte sans jamais redescendre, le heap dump contient tous les objets présents dans la heap. Reste à trouver lequel garde toute la mémoire, et pourquoi le GC ne peut pas le libérer. Mémoire et garbage collector Lire un thread dump avec jstack L'outil du JDK qui photographie l'état de tous les threads d'une JVM vivante. De quoi voir en quelques secondes qui est bloqué, sur quoi, et pourquoi. Profiling et performances Régler le GC de la JVM Le tuning GC commence par décider ce qu'on optimise et par lire les logs, pas par copier des flags trouvés en ligne. Tour d'horizon des leviers qui comptent vraiment. Mémoire et garbage collector Observabilité avec Micronaut : métriques, traces et le piège de la propagation de contexte Brancher Micrometer, OpenTelemetry et des logs structurés dans Micronaut, et la seule chose qui casse tout en silence : perdre le contexte propagé en confiant du travail à un autre thread. Runtime et production Architecture hexagonale et comment l'implémenter avec Spring Boot Ports & adapters, concrètement : un domaine sans annotation Spring, des ports en interfaces, et Spring relégué au rôle d'adapter. Avec le découpage de packages. Architecture et conception Comment lire un flamegraph Largeur = temps, hauteur = profondeur de pile, et surtout : l'axe horizontal n'est pas le temps. La grille de lecture en quelques minutes. Profiling et performances Profiler la JVM avec async-profiler Un profiler par échantillonnage qui ne ment pas sur les safepoints, tourne en prod avec un overhead minime et sort directement un flamegraph. Profiling et performances
Aucun article ne correspond.
Pourquoi ce site
Les informations sur la JVM sont dispersées : un billet de blog, une réponse Stack Overflow, une option de GC dans une vieille documentation. Ce site les met au même endroit.
Chaque article part d’un problème précis : une latence qui augmente, une fuite mémoire, un flamegraph difficile à lire. Il explique quoi regarder, avec quels outils, et comment lire le résultat.