Show TOC

Analyse-OptionenLocate this document in the navigation structure

Verwendung

Das VMC Profiling beinhaltet Analyseoptionen zum Speicherverbrauch, der Laufzeit, Java-Methoden und Exceptions sowie zur Synchronisierung.

Speicheranalyse

Folgende Statistiken und Traces können zur Analyse von Speicherbelegungen eingeschaltet werden.

  • Objektallokationen

    Die Anzahlen und Speichergrößen aller Objektinstanziierungen geben Aufschluss über besonders häufig angelegte bzw. besonders große Objekte.

  • Klassenstatistik

    Die Anzahlen und Speichergrößen aller "lebendigen" (d.h. noch referenzierten) Objekte innerhalb einer VM nach zwischenzeitlich vorgenommenen GCs geben Aufschluss über die Kurz- bzw. Langlebigkeit der Objekte einer Anwendung. Unvermutet langlebige Objekte können auf ein Speicherleck hindeuten.

  • Referenzketten

    Die Referenzketten aller nach einer Garbage Collection noch erreichbaren Objekte zeigen auf, welche Objekte von welchen anderen Objekten - möglicherweise indirekt, d.h. über mehrere andere Referenzen - "am Leben gehalten werden". Diese Analyse kann somit ebenfalls beim Auffinden von Speicherlecks hilfreich sein.

  • Objektzuweisungen

    Die Auflistung aller Wert- und Referenzzuweisungen der einzelnen Objekte kann Aufschluss darüber geben, welche Instanz eine Referenz auf das Objekt hält und in welcher Methode die Zuweisung geschieht. Die Auflistung erfolgt nicht in einer separaten Ansicht, sondern im Rahmen der Darstellung der Thread-Aktivitäten.

  • VM-lokale Garbage Collection

    Die summierten Speichergrößen der verschiedenen Objekttypen vor und nach den Garbage Collections innerhalb der einzelnen VMs können Aufschluss darüber geben, ob die Speicherbereiche für die verschiedenen Objektgenerationen (young, old) der GC angemessen konfiguriert sind.

    Weitere Informationen: Funktionsweise des Local Garbage Collectors

  • Shared Garbage Collection

    Die Anzahlen und Speichergrößen der verschiedenen Typen von VM-übergreifenden Objekten vor und nach der Shared GC geben Aufschluss über die Speicherdynamik innerhalb des Shared Memory-Bereichs des VM Containers.

    Weitere Informationen: Funktionsweise des Shared Garbage Collectors

  • Shared Closure-Operationen

    Die gelieferten Daten geben Aufschluss darüber, wie häufig und in welcher Größe einzelne Shared Closure-Versionen angelegt (create), kopiert (copy), eingeblendet (map) bzw. gelöscht (delete) wurden.

    Weitere Informationen: Shared Closures

Laufzeitanalyse

Folgende Statistik kann zur Analyse der Laufzeit (Performance) eingeschaltet werden:

Methoden-Sampling: Die Anteile der einzelnen Methoden an der Gesamtlaufzeit der Anwendung geben Aufschluss über besonders häufig gerufene bzw. besonders lang laufende Methoden und identifizieren damit mögliche Stellen für Performance-Optimierungen.

Hinweis

Es werden keine Laufzeitanteile, sondern Häufigkeitsanteile gemessen, da lediglich in regelmäßigen Abständen (basierend auf einem internen Zeitgeber) die gerade auf dem Java-Stack befindlichen Methoden bestimmt werden. Der statistische Fehler dürfte aber vernachlässigbar sein.

Die Unterscheidung, ob eine Methode ganz oben auf dem Stack oder nur irgendwo im Stack vorgefunden wurde, zeigt, ob die Methode selbst sehr lange läuft oder nur besonders häufig gerufen wurde.

Anwendungsanalyse

Folgende Traces können zur Ablaufanalyse einer Anwendung eingeschaltet werden:

  • Java-Exceptions

    Die Auflistung der Häufigkeiten und Code-Stellen, wo Java-Exceptions

    • mit dem THROW-Befehl geworfen,

    • mit dem CATCH-Befehl abgefangen,

    • mit dem FINALLY-Befehl bearbeitet bzw.

    • mit einem CLEAR JNI -Befehl gelöscht wurden,

    gibt Aufschluss darüber, ob und wie Fehlersituationen innerhalb der Anwendung verarbeitet werden und kann daher beim Debugging einer Anwendung hilfreich sein.

  • Methoden Trace

    Die Auflistung der Eintritts- und Austrittsstellen der einzelnen Methoden gibt Aufschluss über der Kontrollfluss der Anwendung und kann daher ebenfalls beim Debugging einer Anwendung hilfreich sein. Bemerkung: Die Auflistung erfolgt nicht in einer separaten Ansicht, sondern im Rahmen der Darstellung der Thread-Aktivitäten.

Synchronisierungsanalyse

Folgende Statistiken und Traces können zur Analyse der Synchronisierungen eingeschaltet werden:

  • Monitor-Trace

    Die Auflistung der Operationen auf den Monitor-Objekten der einzelnen VMs gibt Aufschluss über Thread-Synchronisierungsprobleme innerhalb der VM. Beispielsweise kann es zu "hängenden" Threads durch sog. "Wait leaks" kommen. Dabei geht ein Thread in einen "Wait"-Zustand, nachdem die erwartete "Notify"-Operation eines anderen Threads bereits erfolgt ist. Bemerkung: Die Auflistung erfolgt nicht in einer separaten Ansicht, sondern im Rahmen der Darstellung der Thread-Aktivitäten.

  • Shared Lock Trace

    Die Auflistung, wie häufig und mit welchen Warte- und Haltezeiten die verschiedenen Typen von VM-übergreifenden Sperren (Shared Locks) gesetzt wurden, kann Aufschluss über Synchronisierungsprobleme zwischen den VMs sowie über mögliche Skalierungsprobleme (Contention) beim gleichzeitigen Zugriff auf VMC- bzw. Systemressourcen geben.