Developed in conjunction with Joomla extensions.

Wir sind stolz darauf, diese Auszeichnung erhalten zu...
Wir sind stolz darauf, diese Auszeichnung erhalten zu...
Am Stand 250 wurden die Besucher mit einem Basketballkorb...

Ihre Java-Anwendung ist nervtötend langsam? Sie erhalten regelmäßig „OutOfMemory“-Fehler, müssen täglich mehrfach die Laufzeitumgebung durchstarten? Das alles muss nicht sein: Wir können helfen!

Heutzutage gibt es keinen Grund mehr, dass Java-Anwendungen anderen Technologien – wie z.B. C/C++ – in bezug auf die Performance prinzipiell unterlegen sind. Dennoch sehen sich Firmen und Endanwender in der Realität leider immer noch viel zu oft mit schlechten Laufzeiten und/oder immer langsamer werdenden Java-Anwendungen konfrontiert, die ständig „OutOfMemory“-Fehler werfen, teilweise sogar mehrmals täglich durchgestartet werden müssen, massiv mehr Rechenleistung (CPU-Zyklen) in Anspruch nehmen als erwartet, zuweilen einfach „hängenbleiben“ usw.

Java Performance – heute kein Thema mehr, wenn man weiß, wie man es richtig macht

Heutzutage sind Java-Anwendungen definitiv für alle Szenarien und Skalierungsstufen (auch im Bereich von „Big Data“!) geeignet und laufen nicht langsamer als vergleichbare Anwendungen in C/C++, wenn man „weiß, wie man es richtig macht“, d.h. typische, kritische Fehler in Programmierung, Konfiguration und Architektur vermeidet und die geeigneten Methoden und Tools einsetzt, um die Performance zu analysieren und zu optimieren.
Typische Schwachstellen in komplexen Enterprise-Java Anwendungen sind beispielsweise:

  • „Memory Leaks“, d.h. nicht mehr benötigter, aber nicht freigegegebener Speicher führt zu immer mehr Garbage Collection Overhead und final zum „OutOfMemory“
  • konfigurationsbedingte „Bottlenecks“, z.B. zu geringe Connection-Pool oder Thread-Pool-Größen
  • ineffiziente Schnittstellen, insb. Datenbankzugriffe
  • schlechte Programmierung, indem wiederverwendbare Objekte nicht gecached oder gepooled, sondern immer wieder neu angelegt werden
  • ineffiziente Verarbeitung komplexer Datenstrukturen (z.B. in-memory statt streaming), insbesondere großer XML- oder JSON-Bäume
  • suboptimal konfigurierte Garbage Collection-Algorithmen und Heap-Strukturen

Wir helfen Ihnen, die Performance-Lücke zwischen Theorie und Praxis zu schließen

Unsere Experten für Java-Performance-Analyse und Tuning sind erfahrene Java-Consultants und Entwickler mit langjähriger Erfahrung in Architektur, Entwicklung und Betrieb von komplexen, unternehmenskritischen Java-Anwendungen (auf der Basis der Java Enterprise Edition und anderer Technologien). Wir kennen die Methoden und Werkzeuge, die es braucht, um bestehende Performance-Probleme in Ihren Produktions- und Testumgebungen in relativ kurzer Zeit zu analysieren, zu priorisieren/gewichten und Verbesserungsvorschläge zu machen. Dabei lassen sich in den allermeisten Fällen beeindruckende Verbesserungen erzielen.


Vor-Ort-Einsatz: Methodisches Vorgehen, Tools, Analyse, Ziele, Prioritäten, Umsetzung

Wir bieten Ihnen Unterstützung bei Performance-Problemen jedweder Art im Rahmen von ein- oder mehrtägigen Einsätzen bei Ihnen vor Ort. Unsere Java-„Firefighter“ nehmen dabei methodisch in einer Top-Down-Analyse, ausgehend von Ihrer Darstellung der aktuellen Probleme, Ihre Java-Anwendungen und Laufzeitumgebungen unter die Lupe. Wir erarbeiten zusammen mit Ihnen bzw. Ihren Entwicklungsteams die Ziele des Einsatzes sowie im Verlauf eine prioritätenbasiere Liste von Änderungsvorschlägen, um Ihren Anwendungen in der aktuell gegebenen Laufzeitumgebung schnell zu besserer Performance zu verhelfen („low hanging fruits“). Zudem leiten wir technologie-, architektur-, hardware- und herstellerneutral langfristige Vorschläge ab, um Ihre Java-Laufzeitumgebung mit dem Fokus auf Performance Monitoring und die weitere Verbesserung der Performance strategisch weiterzuentwickeln. Dabei kommen z.B. folgende Methoden und Tools zum Einsatz:

  • Analyse der Anwendungsarchitektur und Laufzeitumgebung nach der SunTone AM-Methode
  • Garbage Collection-Analyse mit VisualVM, GCViewer, Java Mission Control, JConsole
  • Applikationsprofiling mit Memory-Profiler: Erkennen von Memory Leaks und ineffizienten Objektstrukturen
  • Applikationsprofiling mit CPU-Profiler und/oder Interzeptoren: Erkennen von ineffizientem Code
  • Ggf. Analyse/Vergleich von Lösungsalternativen durch passende Benchmarks
  • Ggf. Analyse von Deadlocks/Verklemmungen mit Thread Dumps u.a.

Hilfe zur Selbsthilfe: Wir zeigen Ihnen, wie es geht

Selbstverständlich zeigen wir Ihnen während des Einsatzes, wie wir dabei vorgehen, welche Tools für welche Analysen jeweils am besten geeignet sind und wie man sie bedient. So können Sie im weiteren Verlauf Ursachen für Performance-Probleme auch selbst systematisch Schritt für Schritt eingrenzen, auffinden und beheben. Auf Wunsch dokumentieren wir natürlich auch (je nach Kundenwunsch mehr oder weniger ausführlich) Ausgangszustand, Erkenntnisse und Ergebnisse/Fortschritte zur besseren Nachvollziehbarkeit und Nachweisbarkeit der Erfolge des Einsatzes für Ihr Management.

1. SunTone AM

suntone

2. JVisualVM mit VisualGC Plugin

jvisual

3. YourKit Profiler

youtkit

Diese Webseite benutzt Cookies für das beste Nutzererlebnis. Ich möchte mehr erfahren. Akzeptieren & Schließen