J'ai vérifié Java Flight Recorder (JFR)

Aujourd'hui, qu'est-ce que Java Flight Recorde?

Java Flight Recorde (JFR) est, en un mot, un profileur Java. Un module inclus dans Java SE Advanced qui nécessite une licence commerciale (payante) pour être utilisé dans un environnement de production, mais qui peut être utilisé gratuitement pendant le développement.

JFR est intégré à l'environnement d'exécution Java SE à partir de Java7, Il semble enregistrer efficacement les données déjà collectées dans l'environnement d'exécution Java! Il sera également inclus dans la dernière version de Java 9.

Profileurs Java bien connus autres que JFR jvmmonitor, JProfiler, JProbe, il y a quelque temps, il y a le TPTP (Test & Performance Tools Platform) d'Eclipse, Il y a une charge ou le développement est arrêté et il ne peut plus être utilisé.

Quand utilisez-vous JFR? Que puis-je faire?

JFR plante soudainement la machine lorsque l'application est en cours d'exécution tout le temps! Ou, cette application a une mauvaise réponse! Il s'agit d'un outil à utiliser lorsque vous devez rechercher des fuites de mémoire ou améliorer les performances de votre application.

Les fonctions de JFR sont les suivantes.

Comment utiliser JFR

Utilisé comme option pour les commandes Java

Pour utiliser JFR à partir de commandes Java, spécifiez les options suivantes.

Comment exécuter l'application MyApp pour démarrer immédiatement l'enregistrement pendant 60 secondes et l'enregistrer dans un fichier nommé Recording.jfr

$ java -XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:StartFlightRecording=duration=60s,filename=/tmp/recording.jfr MyApp



 Voir ci-dessous pour les paramètres de "-XX: Démarrer l'enregistrement de vol".
[https://docs.oracle.com/cd/E22646_01/doc.40/b61441/optionxx.htm#BABIEFBA](https://docs.oracle.com/cd/E22646_01/doc.40/b61441/optionxx.htm#BABIEFBA)

## Utilisé avec la commande jcmd
 La commande jcmd est une commande qui vous permet de profiler un processus Java en cours d'exécution.
 Pour utiliser JFR à partir de la commande jcmd
 Les options "-XX: + UnlockCommercialFeatures" et "-XX: + FlightRecorder" doivent être spécifiées lors du démarrage de l'application Java.

 Comment démarrer l'enregistrement pendant 60 secondes dans un processus Java en cours d'exécution avec l'identifiant de processus 5368 et l'enregistrer dans un fichier nommé Recording.jfr


#### **`$ jcmd 5368 JFR.start duration=60s filename=/tmp/recording.jfr`**

Là où ça change avec Java9!

Il semble que Java 9 rendra l'interface utilisateur JFR considérablement différente et plus facile à utiliser. L'API JFR est prise en charge pour activer le contrôle de l'enregistreur et la génération d'événements personnalisés.

Résumé

Les performances d'une application sont grandement affectées par la façon dont elle est fabriquée, et je pense que de nombreux facteurs qui causent une dégradation des performances sont des problèmes de fabrication (créateur).

Si vous pouvez utiliser des outils de profilage pour trouver et corriger les goulots d'étranglement, Vous pouvez considérablement améliorer les performances de votre application!

Utilisons efficacement les outils de profilage pour développer de meilleurs produits.

JFR est disponible gratuitement pendant ** le développement! ** **

Recommended Posts

J'ai vérifié Java Flight Recorder (JFR)
Dépannage avec Java Flight Recorder
Vérifier l'utilisation du tas avec Java Flight Recorder
Comment enregistrer JFR (Java Flight Recorder) et générer un fichier de vidage
Enregistreur de vol OpenJDK 11
J'ai vérifié ça
J'ai d'abord touché Java ②
J'ai d'abord touché Java ③
J'ai d'abord touché Java ④
J'ai d'abord touché Java
J'ai essayé de vérifier la vie précédente avant la vie précédente au lieu de Zundoko Kiyoshi
Exécuter l'analyse avec OpenJDK11 Java Flight Recorder + Google Kubernetes Engine
Ce que j'ai recherché sur Java 8
J'ai commencé Java Gold (Chapitre 1-1)
Ce que j'ai recherché sur Java 6
J'ai fait une roulette à Java.
Ce que j'ai recherché sur Java 9
J'ai étudié les types primitifs Java
J'ai pris Java SE8 Gold.
J'ai essayé Drools (Java, InputStream)
Modèle de disjoncteur que j'ai vérifié
Ce que j'ai recherché sur Java 7
J'ai essayé d'utiliser Java REPL
[Java] J'ai essayé d'implémenter la combinaison.
Je ne suis pas sûr du traitement parallèle Java
J'ai étudié le constructeur (java)
J'ai essayé la métaprogrammation avec Java
Ce que j'ai recherché sur Java 5