Profilerstellung mit der Eclipse Test and Performance Tools Platform (TPTP)

Überblick

  • Die Profilerstellung ist ein wichtiger Aspekt für Programmierer, da dies der Prozess ist, bei dem der Programmierer eine hohe Speicherauslastung, eine hohe CPU-Auslastung, Probleme mit Netzwerkkonflikten usw. feststellen kann.
  • Es gibt verschiedene Profiler auf dem Markt und die meisten davon sind kommerzielle Versionen.
  • Die Eclipse-Community hat ein Projekt namens Testing and Performance Tools Platform (TPTP), um dies zu beheben. Hier wird nur der Profilierungsaspekt von TPTP erörtert, jedoch ist die Fähigkeit von TPTP viel größer.
  • TPTP

  • Diese Funktion kann zum Profilieren lokaler Java-Anwendungen oder komplexer Anwendungen verwendet werden, die auf mehreren Hosts und verschiedenen Plattformen ausgeführt werden.
  • Dies ist in Eclipse integriert und ermöglicht die Profilerstellung von Anwendungen, die in Eclipse ausgeführt werden.
  • TPTP kann über Eclipse Provisioning Manager installiert werden oder die erforderlichen TPTP-Pakete manuell herunterladen und im Plugins-Verzeichnis ablegen.
  • Agent Controller - Mit diesem Prozess können Clientanwendungen andere Anwendungen lokal oder remote starten und mit Agentenprozessen interagieren, um Profildaten zu erfassen. Wenn TPTP lokal in einer Java-Anwendung verwendet werden soll, ist dieser eigenständige Agentencontroller nicht erforderlich, da TPTP mit Agent Controller gebündelt ist.
  • Die drei implementierten Profilierungsvorgänge.
    1. CGProf: Diese Profilierungsoption wird zum Erkennen von Leistungsengpässen verwendet, indem die Ausführungszeit auf Methodenebene aufgeschlüsselt wird.
    2. HeapProf: Mit dieser Option können Sie den Inhalt des Heaps identifizieren, indem Sie die Objektzuweisung und -entzuweisung während der gesamten Lebensdauer des Programms verfolgen.
    3. ThreadProf: Mit dieser Profilierungsoption können Sie die Thread-Nutzung während der gesamten Lebensdauer des Programms verfolgen.
  • TPTP-Woks in der Profilierungs- und Protokollierungsperspektive von Eclipse.
  • Ausführungszeitanalyse

  • Dieser Aspekt von TPTP gibt die Ausführungszeit von Paketen, Klassen und Analysemethoden an
  • Dies ist hilfreich, um die Ausführungspunkte zu finden, die mehr Zeit als erwartet in Anspruch nehmen und potenzielle Leistungsengpässe darstellen.
  • Terminologien

  • Basiszeit: Die Zeit, um den Inhalt der Methode selbst auszuführen, ohne Aufrufe anderer Methoden. (Im Diagramm hat das Feld Basiszeit alle Aufrufe dieser Methode zusammengefasst.)
  • Durchschnittliche Basiszeit: Die durchschnittliche Zeit, die eine bestimmte Methode benötigt hat, ohne die Zeit für Methodenaufrufe an andere Methoden. (In der Tabelle ist dies die Basiszeit geteilt durch die Anzahl der Anrufe.)
  • Kumulative Zeit: Die Zeit, um den Inhalt der Methode selbst auszuführen, einschließlich der Aufrufe anderer Methoden.
  • Schritte:

  • Wählen Sie das Projekt und den oben genannten Pfad.
  • Wählen Sie die auszuführende Profilkonfiguration aus - Junit, Applet, Anwendung oder Serverprojekt.
  • Wählen Sie die Registerkarte Monitor und dann 'Ausführungszeitanalyse'.
  • Klicken Sie auf Bearbeitungsoptionen und wählen Sie "Methode CPU-Zeitinformationen sammeln".
  • Gedächtnisanalyse

  • Dieser Aspekt von TPTP ermöglicht die Speichernutzung von Paketen, Klassen und Analysemethoden.
  • Dies ist hilfreich, um die Ausführungspunkte zu finden, die mehr Speicher als erwartet verbrauchen. Dies sind potenzielle Fälle für Speicherlecks.
  • Terminologien

  • Live-Instanzen: Die Anzahl der Instanzen der jeweiligen Klasse, die sich noch im Speicher befinden (es wurde kein Müll gesammelt).
  • Aktive Größe: Die Gesamtzahl der Bytes im Heap, die derzeit von allen Live-Instanzen belegt werden.
  • Gesamtzahl der Instanzen: Die Gesamtzahl der Instanzen dieser Klasse, die während der Lebensdauer der JVM erstellt wurden (einschließlich der durch Müll gesammelten Objekte).
  • Gesamtgröße: Die Gesamtgröße aller Instanzen dieser Klasse, die während der Lebensdauer der JVM erstellt wurden (einschließlich der durch Müll gesammelten Objekte).
  • Durchschnittsalter: Durchschnittsalter eines Objekts, bevor Müll gesammelt wird.
  • Schritte:

  • Wählen Sie das Projekt und den oben genannten Pfad.
  • Wählen Sie die auszuführende Profilkonfiguration aus - Junit, Applet, Anwendung oder Serverprojekt.
  • Wählen Sie die Registerkarte Monitor und dann 'Speicheranalyse'.
  • Klicken Sie auf Bearbeitungsoptionen und wählen Sie "Objektzuordnungsstandorte verfolgen".
  • Thread-Analyse

  • Dieser Aspekt von TPTP führt zu Thread-Konflikten zwischen Paketen, Klassen und Analysemethoden.
  • Dies ist hilfreich, um die Ausführungspunkte zu finden, an denen der Thread auch nach Abschluss des Vorgangs auf Ressourcen wartet.
  • Schritte:

  • Wählen Sie das Projekt und den oben genannten Pfad.
  • Wählen Sie die auszuführende Profilkonfiguration aus - Junit, Applet, Anwendung oder Serverprojekt.
  • Wählen Sie die Registerkarte "Monitor" und dann "Thread-Analyse".
  • Klicken Sie auf Bearbeitungsoptionen und wählen Sie "Konfliktanalyse".
  • Wichtige Punkte

  • Benutzerdefinierte Sondenkits können ebenfalls eingefügt werden, um die Anwendung zu profilieren.
  • Die Speicheranalyse gibt Hinweise auf eine hohe ungewöhnliche Speichernutzung, die mögliche Kandidaten für einen Speicherverlust sein könnten.
  • Hohe Ausführungszeiten von Klassen oder Methoden sind Hinweise auf Leistungsprobleme, die genau eingestellt werden können.
  • Diese Geschichte, "Profiling Setup mit Eclipse Test und Performance Tools Platform (TPTP)", wurde ursprünglich von JavaWorld veröffentlicht.