Tune your Java Performance

Performanceprobleme sind oft sehr mysteriös, aber nicht unlösbar. Die Ursache kann Schritt für Schritt eingegrenzt werden. Fakten und Informationen zu Java Performance und Java Tuning finden Sie hier auf einen Blick.

Java Performance

Performance und Stabilität gehören zu den wichtigsten nichtfunktionalen Anforderungen von Softwaresystemen. Sie sind wichtige Faktoren für die Akzeptanz und Effizenz von Anwendungen und damit auch Treiber für ihren Erfolg. Übertrifft der Erfolg die Erwartungen, treten die Skalierbarkeit und die damit verbundenen Herausforderungen ans Tageslicht.

Die Java-Plattform bietet viele Werkzeugen zur Analyse und Diagnose von Performanceproblemen und zur Durchführung von Performance Tuning.  In diesem Kompetenzbereich präsentieren wir Ihnen die wichtigsten Fakten und Informationen zum Thema Java Performance und Java Tuning.

Java Profiler

Performanceprobleme sind oft sehr mysteriös, so dass ein detektivisches Vorgehen zur Performance-Optimierung gefragt ist. Die Ursache für ein langsames Verhalten der Anwendung muss Schritt für Schritt eingegrenzt werden. Obwohl jeder „Fall“ anders ist, bleibt das Vorgehen dabei gleich: Verhalten verstehen, Messungen durchführen, Ergebnisse erklären und Veränderung durchführen, anschließend verifizieren.  Während der Entwicklung unterstützen Java Profiler die Analyse des Laufzeitverhaltens und ermöglichen es, besonders langsame Codestellen schnell zu identifizieren.

Java Memory Leak

Ein wichtiger Bestandteil von Java Tuning ist die Analyse von Speicherverwaltungsproblemen, Garbage Collection und Memory Leaks. Neben Java Profilern kommen Produktionsmonitore wie Garbage-Collection-Analyse-Werkzeuge zum Einsatz. Häufig lässt sich der durch die sogenannte „Stop-The-World“ Garbage Collection verursachte komplette Stillstand von einigen Sekunden auf wenige Millisekunden reduzieren, sofern er nicht sogar komplett vermeidbar ist.

Java Virtual Machine

Eine Reihe von Java Virtual Machines haben ihre jeweiligen Stärken und Schwächen. Sie unterscheiden sich teilweise stark in ihrer Speicherverwaltung, Nebenläufigkeit oder Konfiguration. Zudem liefern die verschiedenen Hersteller unterschiedliche Werkzeuge mit aus. Neben der HotSpot JVM von Sun/Oracle sind JRockit oder IBM J9 am häufigsten im Einsatz.

Web Performance Optimization

Da viele Java-Anwendungen eine wichtige Weboberfläche haben, wird neben der Java Performance auch die sogenannte Web-Performance-Optimierung wichtig. Insbesondere bei Anwendungen, die von einem großen Benutzerkreis genutzt werden, macht es Sinn diesen Bereich zu optimieren, um den Benutzern eine schnelle Oberfläche im Browser zu bieten und Netzwerkkommunikation zu reduzieren.

Application Performance Management

Gerade da Java Performance schlecht planbar ist, bieten sich agile Entwicklungsverfahren und Testautomatisierungen an. Zum Testen verwendet man Lasttreiber, die definierte Testpläne beliebig oft gegen eine Testumgebung ausführen. Gemessen wird mit Diagnosewerkzeugen, die sich möglichst selbsttätig an die zu messende Umgebung anpassen und so schnell Bereiche identifizieren, die entweder generell oder erst unter Last (durch Nebenläufigkeitseffekte) langsam sind.

Während Java Troubleshooting und Tuning einmalige Aktivitäten sind, sind Performancetests bereits der erste Schritt in einer umfassenden Adressierung des Themas Application Performance Management, das sich auch mit dem Betrieb und der Überwachung von Anwendungsperformance beschäftigt. Idealerweise wird ein kontinuierlicher Verbesserungsprozess eingeführt, der mit Produktionsüberwachungswerkzeugen kritische Stellen identifiziert und adressiert.

Nehmen Sie Kontakt mit uns auf.

Jetzt informieren!