Java Profiler
Java Profiler – Überblick
Java Profiler sind robuste und leistungsstarke Werkzeuge zum Auffinden von Performanceproblemen in einer Entwicklungsumgebung. Sie messen die benötigte Zeit in Methodenaufrufen über Sampling- oder Instrumentierungsverfahren. Die Unterschiede dieser Verfahren haben wir in unserem Blogbeitrag “Java Performance Messen – Sampling oder Instrumentierung” ausführlich erläutert.
Darüber hinaus bieten die meisten Memory Tracking-Funktionalität, welche zum Aufspüren von Java Memory Leaks und Memory Trashing dient. Begrenzungen auf spezielle Java Virtual Machine Versionen, sowie der relativ hohe Overhead schränken die Verwendung von Profilern leider auf die Entwicklungsumgebung ein.
Da Java Profiler nicht transaktionsbasiert sind, liefern sie nur statistische Informationen, die während der Analyse interpretiert werden müssen. In der Regel sucht man mit Java Profilern HotSpots, die eine vergleichsweise lange Ausführungszeit bei einem sehr häufigen Aufrufverhalten haben.
JProfiler
Der von uns favorisierte Java Profiler ist JProfiler von ejTechnologies aus München. Einfach zu bedienen und übersichtlich gestaltet. Dazu ein preiswerter Lizenzpreis.
YourKit
YourKit von der gleichnamigen russischen Firma, ist wie JProfiler ein hervorragender Java Profiler.
In einem Blogeintrag über iText Performanceprobleme wird YourKit als Profiler verwendet, und es wird gezeigt, wie man Performanceprobleme damit effizient aufspüren kann.
NetBeans Profiler
Im Vergleich zu den kommerziellen Produkten ist der NetBeans Profiler deutlich leistungsschwächer. Zwar ist die Verwendung von NetBeans eine Hürde für Entwickler, die an Eclipse gewöhnt sind, jedoch ist NetBeans eine gute Einstiegsmöglichkeit.
HProf
Beim JDK von Sun/Oracle wird HProf als Java Profiler mitgeliefert. Technisch funktioniert er sehr gut, jedoch ist die Benutzbarkeit durch die Bedienung per Kommandozeile stark eingeschränkt. Es lohnt sich eigentlich nicht, sich mit HProf auseinanderzusetzen.