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é.
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.
** Profilage ** JFR stocke en permanence de grandes quantités de données sur les systèmes en cours d'exécution. Ces informations de profilage comprennent les informations suivantes et autres.
Informations d'application Java: exceptions, threads, E / S de fichier, E / S réseau, etc.
Informations JavaVM: allocation de mémoire, chargement de classe, JIT, GC, échantillonnage de méthode
Informations OS: informations sur l'utilisation de la mémoire et du processeur
** Analyse de la boîte noire ** JFR stocke en permanence les informations dans un tampon circulaire, donc si vous accédez à ces informations lorsqu'une erreur est détectée, vous pouvez en trouver la cause.
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`**
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.
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