Deutsch
English
. .

Samstag, 19. Mai 2012

inspectIT ist kein Profiler

Mittels Profiler ist es möglich in Niedriglastszenarien Diagnosen durchzuführen, für Mittel- bis Hochlastszenarien sind Profiler jedoch nicht ausgelegt. inspectIT öffnet für Sie diese Blackbox und liefert Ihnen selbst in Hochlastszenarien (bspw. Lasttests) detaillierte Performanceinformationen, welche Sie zur Analyse und Optimierung Ihrer Anwendung einsetzen können. Definieren Sie schnell und einfach Messpunkte und finden Sie Ihre Performanceschwachstellen bevor es andere, meist Ihre Kunden, tun.

Alle Funktionalitäten in inspectIT wurden auf minimalen Overhead für die Anwendung ausgelegt. Manche Funktionalität von Profiler wird man in inspectIT nicht finden, da diese Funktionalität nicht für mittlere und hohe Lastszenarien eingesetzt werden kann.

Profiler starten typischerweise mit einem "all-in" Ansatz, sprich alle Methoden werden in die Analyse integriert. inspectIT startet - abgesehen von vorgegebenen Messpunkten wie SQL Abfragen - mit einem "all-out", sprich keinerlei Methodenmesspunkte, Exceptions und invocation sequences sind definiert. Sie entscheiden welche dieser Messpunkte für Sie interessant sind. Dadurch erlangt inspectIT einen wesentlich niedrigeren Overhead als Profilerlösungen.

Oftmals benutzen Profilerlösungen das JVM interne Profiling Interface um an Laufzeitinformationen der Anwendung zu kommen. Dieses Interface ist jedoch irreführend, da bestimmte Optimierungen der JVM für dieses Interface abgestellt sein müssen, die in produktiven Systemen einen erheblichen Performancevorteil bieten (bspw. HotSpot Kompilierung). Für manche JVMs bedeutet der Start in diesem Modus, das sogar eine komplett andere JVM gestartet wird. Es ist somit also ein Vergleich Äpfel mit Birnen. inspectIT integriert sich transparent in das Classloading und integriert darüber Messpunkte direkt in die ausgeführten Methoden. Sie führen dadurch exakt die gleiche JVM mit den gleichen Optionen durch, welche Sie später in Produktion benutzen.