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 Profiling Avec Faible Latence Maintenant Disponible en Java 8

Le Profiling Avec Faible Latence Maintenant Disponible en Java 8

Les contributeurs d'OpenJDK ont reporté les puissantes fonctionnalités de profiling à faible latence dans Java 8 maintenu publiquement, permettant aux développeurs de surveiller les performances de la JVM avec un faible overhead. L’outil, Flight Recorder, est disponible dans plusieurs versions Open Source, telles que AdoptOpenJDK.

Java Flight Recorder (JFR) est en développement depuis plus de 10 ans et constitue les fonctionnalités sous-jacentes de surveillance des performances de JRockit et du serveur WebLogic. L'outil a été intégré à HotSpot dans Java 8 et JDK 7u40, lorsque JRockit et HotSpot ont convergé vers une seule implémentation d'une machine virtuelle Java. Contrairement aux systèmes de surveillance des performances externes, JFR est directement intégré au JDK et permet de surveiller les performances de manière précise, sans induire d'erreurs de lecture dues aux safepoints ou l'échantillonnage (sampling). Le résultat de JFR est un diagnostic de performance précis où le fait de mesurer ne représente qu’une surcharge de 2% environ. Ces diagnostics permettent aux développeurs et aux opérateurs de rassembler des données de performances réelles au lieu de deviner ou de pointer du doigt.

Le code pour JFR a été mis à disposition sous forme open source dans JDK 11, accessible à tous les utilisateurs gratuitement. Avant ce travail en open source, cette fonctionnalité n'était disponible que dans le JDK Oracle en tant que fonctionnalité commerciale nécessitant une licence de Java SE Advanced. L'activation de la fonctionnalité dans le JDK Oracle nécessite d'activer la fonctionnalité commerciale ou une connexion JMX permettant d'activer des fonctionnalités commerciales. Le portage de JFR permet aux utilisateurs d'implémentations de JVM libres d'utiliser JFR gratuitement, à condition qu'ils le fassent sur une JVM non Oracle. Oracle ayant mis fin au support public pour JDK 8 et nécessite une licence commerciale pour JDK 11+, de nombreux développeurs optent désormais pour des versions gérées librement, telles que la distribution HotSpot de AdoptOpenJDK.

JFR est utilisable par les développeurs via deux mécanismes principaux : Flight Recorder est un enregistreur de type boîte noire automatisé déjà présent dans la JVM et servant à enregistrer des informations. Mission Control est la console visuelle, exécutée sur un système différent qui permet aux opérateurs de contrôler la boîte noire en évaluant les métriques ou en créant des instantanés de performances.

Il existe plusieurs différences notables entre JFR et d’autres profilers commerciaux et publics. La différence la plus notable est que JFR est déjà présent dans la JVM et ne nécessite aucun outil supplémentaire à ajouter ou à intégrer. Les autres différences importantes découlent de ce fait. Alors que de nombreux profilers se concentrent sur des métriques de haut niveau, telles que les temps de chargement des requêtes/réponses, le concept de "requête Web" n’existe pas au niveau de la couche JDK. En conséquence, les métriques fournies par défaut dans JFR sont davantage orientées vers les opérations brutes de la JVM. Une fonctionnalité en particulier est l'analyse avancée de l'activité du ramasse-miettes. Contrairement aux outils courants qui se contentent de rapporter des statistiques sur le ramassage-miettes, les fonctionnalités d’analyse de JFR fournissent des détails sur les objets qui ont été récupérés et sur qui les ont jetées. Cette fonctionnalité conduit à deux conclusions qui améliorent les performances : les développeurs peuvent identifier spécifiquement les points à améliorer et en appliquer d'autres lorsque le réglage du ramasse-miettes n'est pas la solution.

Les développeurs qui souhaitent apprendre à utiliser le Flight Recorder peuvent consulter une présentation antérieure de Marcus Hirt, responsable du projet JDK Mission Control. Mikael Vidstet a présenté une nouvelle présentation sur le même sujet à QCon SF.

 

Evaluer cet article

Pertinence
Style

Contenu Éducatif

BT