Die "Thread Analysis" ermittelt statistische Informationen zu den im ausgeführten Programm verwendeten Threads.
Als einfaches Beispielprogramm wird ein GUI-gesteuertes Tool zum Zeichnen von Polygonen auf einer 2D-Zeichenfläche verwendet. Die Verwendung einer GUI und die Verwendung von Buttons zur Steuerung generiert automatisch verschiedene Threads z.B. für die Klassen von Java2D und die Event-Handler der AWT-Bibliothek.
Das Polygon-Zeichen-Tool öffnet ein Fenster mit Buttons. Die Polygone werden in einem getrennten Fenster geöffnet.
Während der Laufzeit des Programms werden Statusinformationen zu den am Programm beteiligten Threads mitgeschnitten und in folgenden Ansichten dargestellt:
In den "Thread-Statistics" bietet TPTP eine Übersicht aller laufenden Threads mit u.a. deren Status, Ausführungs- und Wartedauer. Bei einem Doppelklick auf ein
Event wird der zugehörige "Call Stack" des Eintrags geöffnet.
In den "Monitor-Statistics" lassen sich die "Threads Statistics" noch detaillierter in
-->"Monitor Classes Statistic",
-->"Blocks Statistics" und
-->"Waits Statistics"
aufschlüsseln, d.h. zusätzliche Informationen über das Blockier- und Warteverhalten aller Threads und deren aktiven Monitor-Klassen können hier ermittelt werden. Die Klasse
"ReferenceQueue", in diesem Beispiel die Monitor-Klasse für den "Java2D Disposer", ist ein Datencontainer, welcher Referenzen auf Objekte beinhaltet, die vom Garbage-Collector regelmäßig auf
ihren Abhängigkeitsstatus zum jeweiligen Objekt überprüft werden.
(Der Wert "$Lock" hindert den Garbage-Collector sinnvollerweise daran die "ReferenceQueue" selbst zu löschen.)
Die "Thread Visualizer"-Ansicht dient der übersichtlichen Darstellung der Threads in einem Balkendiagramm.
public static void main(String[] args) {
PolygonGUI pGui = new PolygonGUI();
pGui.setVisible(true);
}
Über den Knopf "Legend" kann die Bedeutung aller Säulenfarben ermittelt werden.
Bei einem Klick auf das Button lässt sich das Testergebnis auch einfach in ein Dokument des Formates ".csv", ".html" oder ".xml" exportieren und ist somit auch nachträglich für spätere Analysezwecke unabhängig von Eclipse verwendbar.
Zurück zur TPTP-Hauptseite