Java >> Java Tutorial >  >> Java

Schlüsselkonzepte zur Verwendung von JProfiler

JProfiler ist ein Tool zur Analyse dessen, was in einer JVM vor sich geht . E-J Technologies hat dieses Tool entwickelt. Die häufigste Verwendung ist das CPU-Profiling oder die Speicheranalyse. In diesem Beitrag möchte ich einige Schlüsselkonzepte zur Verwendung von JProfiler erläutern.

Jeder Softwareentwickler muss JProfiler oder ähnliche Tools verwenden, die mit VisualVM oder JDK gebündelt sind, wenn er die Leistung einer Unternehmensanwendung verbessert. Zuvor hatte ich gezeigt, wie man JProfiler für Leistungstests verwendet.

JProfiler konzentriert sich auf drei verschiedene Themen, die Entwicklern helfen können, ihre Anwendung zu analysieren.

  • Methodenaufrufe – Dies zeigt, was Ihre Anwendung mit Methodenaufrufen macht und wo die Leistung verbessert werden kann.
  • Thread and Lock – Um Multi-Threading-Probleme zu finden, sollten Sie die Thread- und Lock-Analyse überprüfen, die JProfiler bereitstellt.
  • Zuweisungen – Sie können die Objekte auf dem Heap, Referenzketten und Garbage Collection analysieren. Daher hilft es, Probleme mit Speicherlecks zu beheben.

JProfiler bietet auch eine Datenbankanalyse, die helfen kann, zu verstehen, ob es Leistungsprobleme bei Datenbankabfragen gibt. Darauf werde ich in diesem Beitrag nicht eingehen.

JProfiler-Einstellungen

Es gibt zwei Möglichkeiten, wie Sie Daten sammeln können, während Sie JProfiler verwenden.

  • Probenahme – Dies stellt nicht notwendigerweise die Genauigkeit der gesammelten Daten sicher. Diese Funktion stellt keine Statistiken auf Methodenebene bereit. Der Vorteil dieser Funktion besteht darin, dass die Systemleistung nicht beeinträchtigt wird, wenn JProfiler ausgeführt wird.
  • Instrumentierung – Dieser Modus sammelt die gesamten Daten, wirkt sich aber auch stark auf die Leistung der Anwendung aus. Der Vorteil liegt in der Genauigkeit der Daten. Wenn Sie Leistungsanalysen durchführen, sollte dies Ihre Standardauswahl sein, auch wenn sie den Nachteil hat, dass sie große Datenmengen liefert, die für die Leistungsanalyse hilfreich sind.

Wie man JProfiler auf einer laufenden Anwendung ausführt

JProfiler bietet zwei Modi, um das Profiling einer Anwendung zu starten. Wenn Sie im lokalen Modus arbeiten, müssen Sie beim Starten des JProfiler den Datenerfassungsmodus auswählen. In diesem Modus werden die Anwendung und JProfiler auf demselben Computer ausgeführt. Normalerweise nicht empfohlen.

Im Remote-Modus starten Sie Ihren JProfiler-Agenten auf einem Remote-Rechner, wahrscheinlich auf demselben Rechner, auf dem die Anwendung ausgeführt wird. Und von Ihrer lokalen JProfiler-Installation aus stellen Sie eine Verbindung zum JProfiler-Agenten her. Dazu benötigen Sie die IP-Adresse des Remote-Rechners sowie den Port, auf dem der JProfiler-Agent ausgeführt wird . Kurz gesagt, Sie verbinden die JProfiler-GUI mit einem entfernten JProfiler-Agenten, der Ihre Anwendung profiliert.

So analysieren Sie die Anwendungsleistung mit JProfiler

Wenn Sie einen Leistungstest für Ihre Anwendung ausführen, stoppen Sie die Profilerstellung, wenn der Leistungstest beendet wird. Sobald die Profilerstellung abgeschlossen ist, sollte die JProfiler-GUI einen Schnappschuss der profilierten Daten bereitstellen.

In diesem Snapshot haben wir Daten zur Leistungsanalyse, Anzahl der generierten Objekte, Methodenaufrufe, Garbage Collection, Speicherlecks. Wir werden diese Schlüsselkonzepte von JProfiler-Snapshot-Daten jetzt durchgehen.

Die Übersichtsseite zu Telemetries, wie unten gezeigt, gibt Ihnen eine Vorstellung von Metriken wie Garbage-Collection-Aktivität, Arbeitsspeicher, Threads, Klassen und CPU-Last.

CPU-Ansichten

CPU-Ansichten zeigen die Anzahl der Ausführungen und Aufrufbeziehungen jeder Methode in der Anwendung an. In den CPU-Ansichten finden Sie jede bestimmte Methode, von der Sie vermuten, dass sie Leistungsprobleme verursacht. Dies ist eine großartige Ansicht, um zu analysieren, was der Übeltäter in Ihrer Anwendung sein könnte.

Rufbaum

Der Aufrufbaum zeigt eine hierarchische Ansicht aller Methodenaufrufe während der Ausführung Ihrer Anwendung. JProfiler hilft beim Sortieren der Methoden mit ihrer Gesamtausführungszeit.

Wie oben gezeigt, nimmt die Methode zum Lesen von Daten aus Redis Cache die meiste Zeit in Anspruch.

Hotspots

In derselben Ansicht der CPU-Ansichten gibt es eine Option für Hot Spots. Diese Ansicht kann die Methoden nach verschiedenen Faktoren sortieren, z. B. nach individueller Ausführungszeit, Gesamtausführungszeit, durchschnittlicher Ausführungszeit und Anzahl der Aufrufe.

Live-Erinnerung

Die Live-Speicheransicht zeigt die Speicherzuordnung. Hier können wir feststellen, ob ein Speicherleck vorliegt.

Alle Objekte

Die Ansicht Alle Objekte zeigt alle Objekte, die während der Ausführung der Anwendung erstellt wurden, sowie die Größe dieser Objekte.

Schlussfolgerung

In diesem Beitrag habe ich einige Schlüsselkonzepte zur Verwendung von JProfiler für die Leistungsanalyse gezeigt. JProfiler ist ein mächtiges Werkzeug, wenn es effektiv eingesetzt wird. Es gibt viele Funktionen in JProfiler und es kann bei der Verwendung des Tools überwältigend sein. Ich hoffe, dieser Beitrag hilft Ihnen bei der Verwendung von JProfiler zur Analyse Ihrer Anwendung.

Referenzen

  1. JProfiler-Einführung – JProfiler-Einführung


Java-Tag