Java Optimierung und Performance Tuning
Javas Vorteile in hochperformanten, kommerziellen Systemen beweisen Beispiele wie eBay oder Google Calendar. Doch die Optimierung von Java-Engpässen ist nicht trivial, und hartnäckig hält sich das Vorurteil, Java-Programme seien grundsätzlich langsamer. Unser Optimierungsseminar gibt eine Schritt-für-Schritt-Anleitung zum Erkennen und Lösen solcher Performance-Probleme. Das Hauptziel des Kurses stellt die Analyse der Engpässe über Performance-Monitoring Tools dar. Seminarteilnehmer lernen, wie nach dem Erkennen einer Problemstelle mit Hilfe allgemeingültiger Strategien Programme effizienter laufen und weniger Hauptspeicherplatz einnehmen. Die Weiterbildung behandelt insbesondere Optimierungsstrategien zur Verbesserung der Laufzeit von Java Enterprise-Anwendungen, wie zum Beispiel effiziente Caching-Strategien, die Beschleunigung einer Datenbankanbindung oder die Optimierung beim Austausch von Web-Service-Nachrichten.
Inhalte des Seminars
JVM, JITs, Compiler und native Code Compiler
- Arbeitsweise einer JVM
- Interpretierende JVM
- Java Just in Time Compiler (JIT)
- Adaptive Compilierung bei HotSpot
- Tuning-Parameter einer JVM
- Bytecode-Kompression
- Java-Stack: Hardware, Betriebssystem, JVM, Java-Programme
Performance messen, Benchmarking, Profiling
- Profiler Modi verstehen und richtig deuten
- Macro- und Micro-Benchmarks
- Benchmark-Programme für Java VM und Java Enterprise-Anwendungen
- Durch Profiling Performance-Probleme erkennen: das Pareto-Prinzip
- Profiling-Tools: Eclipse Profiler, Netbeans Profiler, InfraRED, VisualVM
- Speicher-Monitoring
- Remote Monitoring über JMX
- JVMTI
Klassische Compileroptimierungen
- Mathematisches
- Schleifenoptimierungen
- Invarianten
Leben und Tod: Der Werdegang der Objekte
- Lebenszyklus der Objekte
- Schwache Referenzen
- Objektpools und Cache
- Arbeitsweise von Garbage Collection, Garbage Collection Algorithmen
- Speicherlecks erkennen und vermeiden
Java-typische Optimierungen
- Strings und Zeichenkettenoperationen
- Klassen- und Methodendesign
- Kosten von Ausnahmen
- Geladene Klassen überwachen, Klassenlader steuern
Nebenläufigkeit durch Threads
- Parallelisieren von Aufgaben
- Kosten durch Thread-Synchronisation
- Thread-Pools
- Fork/Join-Framework
Utility-Klassen in der Java-Bibliothek
- Datenstrukturen und Algorithmen
- Große Ganz- und Fließkommazahlen
- Zeitberechnungen
Ein- und Ausgabe, XML und Netzwerk
- Pufferung
- Serialisierung
- New I/O (NIO)
- StaX optimal einsetzen
- Validierung von XML-Dokumenten, Caching
Performante Datenbankzugriffe über JDBC
- Datenbankanbindungen beschleunigen
- Connection-Pools
- PreparedStatements
- Isolation Level bei Transaktionen
- Datenbank Locking: Optimistisches/Pessimistisches Locking
- Lazy Load Pattern
Enterprise Java
- Einführung in Performance-Pattern/Anti-Pattern bei Jakarta-EE-Anwendungen
- Optimierungen von mehrschichtigen Anwendungen
- Jakarta EE Caching-Strategien
- HttpSession
- Lasttests zum Aufspüren von Engpässen mit JMeter
- Verteilte Programmierung (RMI/CORBA)
- Java Enterprise Pattern zur Minimierung der übertragenen Datenmenge: Value Objects
- Web-Services modellieren
- Servlets und Java Server Pages (JSP): Schnell vom Request zum Response
- Enterprise Java Beans (EJB)
- Optimierung des OR-Mappers
- Java Message Service (JMS)
- Applikationsserver im Produktions- und Entwicklungs-Modus
Termine / Kontakt
Jedes Seminar führt tutego als kundenangepasstes Inhouse-Seminar durch.
Alle unsere Seminare können zudem als Live-Online-Seminar besucht werden.
Wir helfen Ihnen gerne bei der Anmeldung und einen passenden Termin zu finden. Kontaktieren Sie uns per E-Mail oder unter 0800/tutegos (kostenlos aus allen Netzen).
Die Fakten
- Empfohlene Schulungsdauer: 3 Tage, insgesamt 24 Unterrichtsstunden à 45 Minuten
- Zielgruppe: Software-Entwickler
- Vorkenntnisse: Gute praktische Kenntnisse in Java und längere Projekterfahrung.
- Schulungsunterlagen: Deutschsprachige Unterlagen (Kopien der Folien), Zertifikat
- Seminar-Software: Java 21 ist die Standardversion, die in Verbindung mit der IntelliJ IDEA (Community-Edition) verwendet wird. Auf Wunsch auch die Eclipse IDE (Paket ›Eclipse IDE for Enterprise Java Developers‹) oder andere Entwicklungsumgebungen (NetBeans, Oracle JDeveloper) und JDK 8.
Weiterführende Seminare
Refactoring, Design Pattern (Entwurfsmuster) in Java, Effektiv Java programmieren