Java Flight Recorde (JFR) ist kurz gesagt ein Java-Profiler. Ein in Java SE Advanced enthaltenes Modul, für dessen Verwendung eine kommerzielle Lizenz (gegen Gebühr) in einer Produktionsumgebung erforderlich ist, das jedoch während der Entwicklung kostenlos verwendet werden kann.
JFR ist in die Java SE-Ausführungsumgebung von Java7 integriert. Es scheint die Daten, die bereits in der Java-Ausführungsumgebung gesammelt wurden, effizient aufzuzeichnen! Es wird auch in der neuesten Version von Java 9 enthalten sein.
Andere bekannte Java-Profiler als JFR jvmmonitor, JProfiler, JProbe, vor einiger Zeit gab es Eclipse's TPTP (Test & Performance Tools Platform), Es wird eine Gebühr erhoben oder die Entwicklung wird gestoppt und kann nicht mehr verwendet werden.
JFR stürzt plötzlich ab, wenn die Anwendung ständig ausgeführt wird! Oder diese Anwendung hat eine schlechte Antwort! Es ist ein Tool, das Sie verwenden können, wenn Sie Speicherlecks untersuchen oder die Leistung Ihrer Anwendung verbessern müssen.
Die Funktionen von JFR sind wie folgt.
** Profilerstellung ** JFR speichert kontinuierlich große Datenmengen über laufende Systeme. Diese Profilierungsinformationen umfassen die folgenden Informationen und dergleichen.
Informationen zur Java-Anwendung: Ausnahmen, Threads, Datei-E / A, Netzwerk-E / A usw.
JavaVM-Informationen: Speicherzuordnung, Laden von Klassen, JIT, GC, Methodenabtastung --OS-Informationen: Informationen zur Speicher- und CPU-Auslastung
** Black-Box-Analyse ** JFR speichert Informationen kontinuierlich in einem Ringpuffer. Wenn Sie also auf diese Informationen zugreifen, wenn ein Fehler erkannt wird, können Sie die Ursache herausfinden.
Geben Sie die folgenden Optionen an, um JFR aus Java-Befehlen zu verwenden.
So führen Sie die MyApp-Anwendung aus, um die Aufzeichnung sofort für 60 Sekunden zu starten und in einer Datei mit dem Namen record.jfr zu speichern
$ java -XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:StartFlightRecording=duration=60s,filename=/tmp/recording.jfr MyApp
Unten finden Sie die Parameter von "-XX: Start Flight Recording".
[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)
## Wird mit dem Befehl jcmd verwendet
Der Befehl jcmd ist ein Befehl, mit dem Sie einen laufenden Java-Prozess profilieren können.
So verwenden Sie JFR über den Befehl jcmd
Die Optionen "-XX: + UnlockCommercialFeatures" und "-XX: + FlightRecorder" müssen beim Starten der Java-Anwendung angegeben werden.
So starten Sie die Aufzeichnung für 60 Sekunden in einem laufenden Java-Prozess mit der Prozesskennung 5368 und speichern sie in einer Datei mit dem Namen record.jfr
#### **`$ jcmd 5368 JFR.start duration=60s filename=/tmp/recording.jfr`**
Es scheint, dass Java 9 die JFR-Benutzeroberfläche erheblich anders und benutzerfreundlicher machen wird. Die JFR-API wird unterstützt, um die Rekordersteuerung und die Generierung benutzerdefinierter Ereignisse zu ermöglichen.
Die Leistung einer Anwendung wird stark von ihrer Erstellung beeinflusst, und ich denke, dass viele der Faktoren, die zu Leistungseinbußen führen, Probleme bei der Erstellung (Ersteller) sind.
Wenn Sie Profiling-Tools verwenden können, um Engpässe erfolgreich zu finden und zu beheben, Sie können die Leistung Ihrer Anwendung erheblich verbessern!
Lassen Sie uns Profiling-Tools effektiv nutzen, um bessere Produkte zu entwickeln.
JFR ist während der ** Entwicklung kostenlos erhältlich! ** ** **
Recommended Posts