Lernprogramm: Analysieren der Profildaten von einem Java-Prozess

Ziele

Analysieren der durch Erstellung eines Java-Prozessprofils gewonnenen Daten unter Verwendung der Sichten zur Profilerstellung und Protokollierung in der Perspektive 'Profilerstellung und Protokollierung':

Erforderliche Zeit

Eine Stunde

Vorbereitende Schritte

Bevor Sie mit diesem Lernprogramm beginnen, müssen Sie:

  1. Die Eclipse-Plattform inklusive der Hyades-Tools installieren.
  2. Die Beispieldateien für die Profilerstellung zum Importieren bereithalten.  Die Dateien sollten sich im folgenden Pfad befinden:
    Installationsverzeichnis\eclipse\plugins\org.eclipse.hyades.collection.framework\src\org\eclipse\hyades\test\collection\framework

Beschreibung

In diesem Lernprogramm werden Sie die verschiedenen Sichten zur Profilerstellung und Protokollierung zum Analysieren der Beispielklasse PerformanceExample.class verwenden. In dem Beispiel wird ein Rahmen mit zwei Schalflächen geöffnet.

Sie werden die folgenden Tasks durchführen:

  1. Öffnen der Perspektive 'Profilerstellung und Protokollierung' in der Workbench
  2. Erstellen eines Profils der Klasse PerformanceExample
  3. Analysieren der Profildaten

Verwenden Sie die Schalfläche 'Sichten aktualisieren' Eine Schaltfläche mit stilisiertem Symbol, um die Sichten der Anwendung zu aktualisieren, während die Anwendung überwacht wird.

Öffnen der Perspektive 'Profilerstellung und Protokollierung' in der Workbench

Klicken Sie auf Perspektive öffnen  Eine Schaltfläche mit stilisiertem Symbol > Andere > Profilerstellung und Protokollierung

Erstellen eines Profils der Klasse PerformanceExample

Gehen Sie folgendermaßen vor:

  1. Klicken Sie auf Profil   Eine Schaltfläche mit stilisiertem Symbol. Die Seite 'Klasse' des Assistenten 'Java-Prozess starten' wird geöffnet.
  2. Treffen Sie folgende Auswahl: Eine Klasse im Dateisystem auswählen
  3. Klicken Sie auf Durchsuchen und suchen Sie nach der Beispielklasse, die sich im Verzeichnis
    Installationsverzeichnis\eclipse\plugins\org.eclipse.hyades.collection.framework\bin\org\eclipse\hyades\test\collection\framework
    Klicken Sie auf Weiter. Die Seite 'Ziel' wird geöffnet.
  4. ProfileProject und DefaultMonitor sind die Standardressourcen für die Profilerstellung, die in dieser Profilerstellungssitzung zum Speichern von Daten verwendet werden können.  Klicken Sie auf Weiter. Die Seite 'Profilfilter' wird geöffnet.
  5. Akzeptieren Sie die Standardfilter. Klicken Sie auf Weiter. Die Seite 'Profiloptionen' wird angezeigt.
  6. Das Markierungsfeld Die Anwendung verbraucht zu viel Speicher ist bereits ausgewählt. Dadurch werden speicherbezogene Daten in die Profildaten für die Anwendung aufgenommen.
  7. Wenn Sie Ausführungsinformationen erhalten möchten, verwenden Sie die Option Die Anwendung ist zu langsam. Wenn diese Option ausgewählt ist, können Sie die statistischen Sichten zum Analysieren zeitbezogener Informationen verwenden.  Sie müssen grafische Details zur Ausführung erfassen, wenn Sie die Sichten 'Ausführungsablauf' und 'Methodenaufruf' verwenden wollen.  Da Sie sich in diesem Beispiel mit allen Sichten zur Profilerstellung vertraut machen sollen, also auch mit den Sichten 'Ausführungsablauf' und 'Methodenaufruf', klicken Sie auf Details anzeigen und wählen Sie dann Grafische Details zum Ausführungsablauf anzeigen aus.  Klicken Sie auf Fertig stellen.
  8. Die erforderlichen Profildaten werden erstellt und der Agent erscheint zusammen mit dem Prozess in der Sicht 'Profilmonitor'. 
  9. Aktivieren Sie die Anzeige von Ordnern, Monitoren und Hosts. Dadurch sehen Sie das Überwachungsprogramm, das Ihre Daten gruppiert, sowie die Maschine, auf der Sie die Workbench ausführen.

    Profilmonitor, in dem die Ressourcenhierarchie und das Dropdown-Menü zum Markieren der sichtbaren Ressourcen angezeigt werden

     

Analysieren der Profildaten

Anzeigen des Ausführungsverhaltens in einem bestimmten Zeitraum

  1. Öffnen Sie die Sicht 'Ausführungsablauf': Wählen Sie Ihren Monitor aus, klicken Sie mit der rechten Maustaste und wählen Sie dann Öffnen mit > Ausführungsablauf aus. 
  2. In dieser Sicht wird die Ausführung des gesamten Programms dargestellt. Dabei wird die Zeit auf der vertikalen Achse im rechten Bereich dargestellt.
  3. Klicken Sie auf einen Methodennamen (oder auf den Leerraum darunter), um die Methode auswählen. Dadurch werden alle aufgerufenen Methoden gelb hervorgehoben.  Die vertikale Länge des hervorgehobenen Bereichs deutet auf die Basiszeit der Methode hin. Den genauen Wert der Basiszeit sehen Sie in der Statuszeile.

     Sicht Ausführungsablauf mit zwei Methoden, von denen linke gelb schattiert ist
     
  4. Verwenden Sie zum Aktivieren des Cursors das Tool Vergrößern   Eine Schaltfläche mit stilisiertem Symbol. Zeigen und klicken Sie dann auf einen gewünschten Bereich, um ihn zu vergrößern. 

    Großaufnahme der Veranschaulichung zum Ausführungsablauf
     

Analysieren eines Prozesses mit der Sicht 'Ausführungsablauf'

Öffnen der Sicht 'Ausführungsablauf'

  1. Wählen Sie das Überwachungsprogramm oder den Agenten in der Sicht 'Profilmonitor' aus.
  2. Klicken Sie mit der rechten Maustaste, und wählen Sie dann die Option Öffnen mit > Ausführungsablauf aus. Die Sicht 'Ausführungsablauf' wird geöffnet.

Hinweis: Verwenden Sie die Schalfläche Sichten aktualisieren  Eine Schaltfläche mit stilisiertem Symbol, um die Sichten der Anwendung zu aktualisieren, während die Anwendung überwacht wird.

Identifizieren aktiver Threads

In der Sicht 'Ausführungsablauf' sind jedem Thread bestimmte Aktivitätszeiträume zugeordnet, in denen sich ein Überfluss an Methodenaufrufen erkennen lässt. In der symbolischen Darstellung ist die erste aufgerufene Methode ein Streifen, und die von dieser Methode anschließend aufgerufenen Methoden werden rechts daneben als Streifen dargestellt. Die Reihenfolge der Methodenaufrufe schreitet von links nach rechts fort; die aktiven Teile des Threads lassen sich durch diesen Fortschritt von links nach rechts ablesen.

Wenn Sie einen ganzen Bereich auswählen, der die Reihenfolge der Methodenaufrufe umschließt, wird in der Statuszeile die Basiszeit angezeigt, die zur Ausführung dieser Reihenfolge benötigt wurde. Sie können die Basiszeit ermitteln, die der Thread bereits aktiv ist, indem Sie die Differenz der folgenden Zeiten ermitteln: 

  1. Zeigen Sie mit der Maus auf die obere horizontale Linie des ausgewählten gelben Bereichs, damit die entsprechende Basiszeit in der Statuszeile angezeigt wird.
  2. Zeigen Sie auf die untere Kante des gelben ausgewählten Bereichs (der den Ausführungszeitraum während der Ausführung der Methodensequenz abdeckt), und zeigen Sie die Basiszeit an diesem Punkt an.

Tipps

Identifizieren häufig aufgerufener Methoden

So identifizieren Sie häufig aufgerufene Methoden:

  1. Verwenden Sie das Vergrößerungstool  Eine Schaltfläche mit stilisiertem Symbol zum Vergrößern einer Methodenaufrufreihenfolge.
  2. Suchen Sie Streifen mit der gleichen Farbe im ausgewählten Bereich. Diese Streifen signalisieren Methoden der gleichen Klasseninstanz, die mehrere Male aufgerufen wurden.
  3. Prüfen Sie die Länge verschiedenfarbiger Streifen (von denen jeder eine Methode repräsentiert). Je länger der Streifen, desto länger die Ausführungszeit der jeweiligen Methode. 

    Abbildung der Sicht Methodenaufruf

Garbage-Collection untersuchen

Im Normalfall lässt sich durch Untersuchen der Streifen in einem Benutzer-Thread in dieser Sicht nicht feststellen, ob die Garbage-Collection bereits für ein Objekt stattgefunden hat.

Gehen Sie folgendermaßen vor:

  1. Prüfen Sie die Spalte ganz links in dieser Sicht. Diese Spalte ist für die Garbage-Collection reserviert und heißt 'GC-Thread'.
  2. Stellen Sie fest, ob sich in dieser Spalte ein einzelnes, dünnes Rechteck befindet. Das Rechteck befindet sich wahrscheinlich weit unterhalb der meisten Methodenaufrufe des Objekts. Das Rechteck wird in der Spalte 'GC-Thread' angezeigt, wenn die Garbage-Collection für ein Objekt stattgefunden hat.

Identifizieren der Phasen der Programmausführung

Identifizieren der Initialisierungsphase

  1. Verwenden Sie das Vergrößerungstool  Eine Schaltfläche mit stilisiertem Symbol zum Vergrößern der Methodenaufrufreihenfolge am Anfang des Haupt-Threads.
  2. Beachten Sie die Methoden, die mit -init- gekennzeichnet sind.
  3. Klicken Sie auf eine dieser Methoden. In der Statuszeile wird angezeigt, dass diese Methode am Initialisierungsprozess (dem Zuweisen von Werten und Variablen, die in der Anwendung verwendet werden) beteiligt ist.

Analysieren von Methoden mit der Sicht 'Methodenaufruf'

  1. Wählen Sie einen Monitor oder einen Agenten im Profilmonitor aus. Klicken Sie mit der rechten Maustaste, und wählen Sie dann die Option Öffnen mit > Ausführungsablauf aus. Die Sicht 'Methodenaufruf' wird angezeigt.
  2. Wählen Sie die gewünschte Methode aus, klicken Sie mit der rechten Maustaste und wählen Sie dann die Option Methodenaufruf anzeigen aus.
  3. Verwenden Sie das Vergrößerungstool  Eine Schaltfläche mit stilisiertem Symbol zum Vergrößern eines Anzeigebereichs.  Die Streifen sind nach Klasse farblich gekennzeichnet und über horizontale Linien verbunden, die die Methodenaufrufe darstellen.
  4. Wählen Sie eine Methode aus, indem Sie auf ihren Namen klicken. 
  5. Klicken Sie auf Sichten aktualisieren Eine Schaltfläche mit einem stilisierten Symbol, damit die aktuellen Daten angezeigt werden.
  6. Beachten Sie die Zeile:
    Statuszeile, in der der Methodenname und die Zahlen 1/1 angezeigt werden

    In dieser Zeile wird der Name der Methode gefolgt von n/m angezeigt, wobei n der momentan angezeigte Aufruf von den m Gesamtaufrufen der Methode ist. 
  7. Klicken Sie auf Zurück  und Weiter  ,um alle Aufrufe der ausgewählten Methode (oder jede Nachricht zu dem ausgewählten Objekt) anzuzeigen.Der Bruch in der Funktionsleiste wird entsprechend mit der aktuellen Aufrufnummer aktualisiert.

Finden eines Methodenaufrufers

Um den Ursprung eines Methodenaufrufs zu bestimmen, fahren Sie in der Sicht 'Methodenaufruf' mit den folgenden Schritten fort:

  1. Zum Anzeigen des Aufrufers einer Methode klicken Sie  auf die Schaltfläche Aufrufer anzeigen  . Die Methode wird zusammen mit ihrem Aufrufer (links von der Methode) angezeigt. 
  2. Weitere Einzelheiten zum Aufrufer der Methode für jeden neuen Aufruf erhalten Sie, wenn Sie den Cursor über dem Streifen positionieren, der den Aufrufer in der Sicht darstellt. Die Informationen zum Aufrufer werden dann in der Statuszeile angezeigt.
  3. Klicken Sie zum Anzeigen der Methode, die von einer ausgewählten Methode aufgerufen wird, auf die Schaltfläche Aufgerufene Methode anzeigen