http://www.khelekore.org/jmp/tijmp/
TIJMP ist ein kleines Speicher- und Threadanalysetool, welches die Nachfolge von JMP antritt.
JMP war bis zur Java-Version 1.5 lauffähig, wogegen TIJMP speziell für Version 1.6 zu verwenden ist.
Es läuft parallel zur Laufzeit des Programmes und schneidet alle Abläufe des Programmes live mit.
Es wird über die Kommandozeile zusammen mit dem Programm gestartet und ermöglicht das Analysieren des Heaps, des Speichers allgemein und der benutzten Threads.
Das Tool wurde teils in C und teils in Java geschrieben.
TIJMP ist ein kleines aber feines Tool zum Profilen von Javaprogrammen.
Die Installation ist etwas umständlich, jedoch lässt sich das Tool auf jedes kompilierte Javaprogramm anwenden.
Es ist sehr intuitiv bedienbar, einzig die Analyse der Threads könnte Anfängern schwer fallen, die fehlende Dokumentation
macht sich durch diesen Punkt besonders negativ bemerkbar.
Alles in allem ist TIJMP jedoch ein sehr brauchbares Tool zur Speicher- und Threadanalyse.
TIJMP dient grundsätzlich der Speicheranalyse eines Programmes, um eventuelle Speicherlecks ausfindig zu machen. Außerdem ist es möglich die laufenden Threads zu analysieren um z.B. Locks ausfindig zu machen.
TIJMP ist ein externes Java Profiling-Tool, das mit dem Start des zu profilenden Programms ausgeführt wird. Demnach ist es auch möglich, externe, nur in kompilierter Form vorliegende Programme zu analysieren.
Das Installationspaket für Windows und Linux kann hier heruntergeladen werden.
Installation unter Ubuntu
./configure
, make
und sudo make install
ausführen -agentlib:tijmp
ausführen
Eventuell muss noch der JAVA_HOME
Pfad durch den Befehl export JAVA_HOME=/usr/lib/jvm/java-6-sun
auf der Konsole gesetzt werden.
Durch Ausführen von export LD_LIBRARY_PATH=/usr/local/lib/
wird die Bibliothek libtijmp.so
für Java nutzbar.
Falls Java-Umgebungsvariablen abweichen, ist es nötig diese anzupassen.
Durch Ergänzen der beiden Befehle am Ende der Datei .bashrc (im Homeverzeichnis des Benutzerkontos), bleiben die Einstellungen dauerhaft erhalten,
ansonsten setzt Ubuntu die Variablen beim nächsten Neustart zurück.
Installation unter Windows
tijmp.dll
und tijmp.jar
in das Verzeichnis des zu profilenden Programms kopieren-agentlib:tijmp -Dtijmp.jar=tijmp.jar
java -agentlib:tijmp -Dtijmp.jar=tijmp.jar de.fhwiesbaden.poly.PolygonGUI
Außer einer kleinen Installationsanleitung wurde keine weitere Dokumentation gefunden, weder bei dem heruntergeladenen Programm selbst, noch im Internet.
Es existiert lediglich eine Changelog.
Die Projektseite scheint seit dem letzten Update auf Version 0.7 nicht sonderlich geändert worden zu sein. Der Internetauftritt ist sehr informationsarm, mehr als ein paar generelle Informationen sind nicht verfügbar.
Es wurden weder Nutzergruppen noch Support gefunden, lediglich eine eMail-Adresse wurde als Kontakt hinterlegt: robo@khelekore.org
Die Intuitive Nutzbarkeit von TIJMP ist gut. Die meisten Aspekte sind selbsterklärend und die ausführbaren Interaktionen verhalten sich erwartungsgemäß.
Durch die nicht vorhandene Dokumentation fehlen jedoch Informationen speziell im Bereich "Thread info".
Ohne gute Kenntnisse über dieses Themengebiet ist die Verwendung dieses Teilaspekts schwierig.
Es wurde keine Möglichkeit gefunden, TIJMP zu automatisieren. Das Profilen geschieht automatisch im Hintergrund, es ist dem User lediglich möglich, bestimmte Aktualisierungszeiträume per Knopfdruck abzukürzen.
Läuft ein Programm nach einer bestimmten Zeit langsamer oder hängt bei einer bestimmten Funktionalität, so kann dies ein Hinweis auf ein Speicherleck oder Deadlock sein.
Um ein Problem zu finden, sind Profiling-Tools sehr hilfreich.
TIJMP ist ein Memory Analyzer, mit dessen Hilfe jedoch auch Threads untersucht werden können.
Tritt ein solches Problem auf, ist es möglich per "Walk heap" die Anzahl der Objekte seit dem letzten Aufruf zu untersuchen und somit herauszufinden, welche Objekte z.B. viel zu oft existieren.
Per "Memory info" lassen sich schnell viel zu große oder schnell wachsende Objekte auffinden und genau analysieren. Um dies zu vereinfachen, können Filter per Mausklick gesetzt werden.
Zudem lässt sich z.B. der Stack Trace eines Threads unter "Thread info" untersuchen, oder existierende Locks anzeigen.
Zuerst wird ein bereits kompiliertes Java-Programm benötigt. Dazu wird, in diesem Beipsiel, das bereits fertige Programm
PolygonGUI verwendet, dass über eine einfache GUI das Erstellen, Verwalten und Zeichnen von Polygonen ermöglicht.
java -agentlib:tijmp de.fhwiesbaden.poly.PolygonGUI
ausühren (In de.fhwiesbaden.poly
ist das Package PolygonGUI die Main-Klasse)
Über "Thead info" besteht die Möglichkeit, aktuell laufende Threads zu anaylsieren.
Neben den allgemeinen Informationen wie z.B. der Anzahl der aktiven Threads oben links sind auch genaue Informationen verfügbar.
Wird ein Thread markiert wird dessen Stack Trace, Monitor und eventuelle Locks mit anderen Threads sichtbar.
Keine gefunden.
Zurück zur KombiQu-Werkzeugübersicht