Java Optimierung und Performance Tuning
Java ist eine der führenden Programmiersprachen für hochperformante, kommerzielle Systeme –– erfolgreiche Beispiele wie eBay oder Google Calendar belegen das. Dennoch hält sich das Vorurteil, dass Java-Anwendungen grundsätzlich langsamer seien. Tatsächlich ist die Performance-Optimierung von Java-Systemen eine komplexe Aufgabe, die tiefgehendes Verständnis und den gezielten Einsatz von Analysetools erfordert. In diesem praxisorientierten Seminar lernen die Teilnehmer, Performance-Engpässe in Java-Anwendungen systematisch zu identifizieren und mit bewährten Strategien zu optimieren. Dabei liegt der Fokus auf der Nutzung professioneller Performance-Monitoring-Tools sowie der Anwendung effizienter Optimierungstechniken für Java-Enterprise-Anwendungen.
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
- Unterschiede zwischen Profiling, Monitoring und Benchmarking
- Macro- und Micro-Benchmarks
- Benchmarking mit JMH
- Performance-Probleme erkennen: das Pareto-Prinzip
- CPU-, Speicher- und Thread-Analyse
- Heap-Dumps und Speicher-Monitoring
- Java Flight Recorder (JFR)
- Async Profiler
- Remote Monitoring über JMX
- JVMTI
- Analysewerkzeuge: VisualVM, JMC, Async Profiler
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
- Virtual Threads
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
- Java Enterprise Pattern zur Minimierung der übertragenen Datenmenge: Value Objects
- Webservices modellieren
- Servlets und Jakarta Pages (JSP): Schnell vom Request zur Response
- Enterprise Java Beans (EJB)
- Optimierung des OR-Mappers
- Jakarta Messaging (ehemals Java Message Service, aka JMS)
- Applikationsserver im Produktions- und Entwicklungs-Modus
Native Compilation
- GraalVM
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: Softwareentwickler
- Vorkenntnisse: Gute praktische Kenntnisse in Java und längere Projekterfahrung.
- Schulungsunterlagen: Umfassende Seminarunterlagen und Referenzdokumentation
- Seminar-Software: Java 25 ist die verwendete LTS Standardversion. Als Entwicklungsumgebung dient standardmäßig IntelliJ IDEA Community Edition. Alternativ können auch die Eclipse IDE oder Visual Studio Code verwendet werden.
Weiterführende Seminare
Refactoring, Design Pattern (Entwurfsmuster) in Java, Effektiv Java programmieren
Verweise
Alle Kategorien
- .NET
- AutoCAD
- Big Data
- C und C++
- Datenbanktechnologien
- Digitale Kompetenz
- HTML und CSS
- Informationssicherheit und Recht
- iWork
- Java
- JavaScript und Framework
- KI, ML, AI
- Kotlin
- Linux
- MATLAB
- Mobile Geräteentwicklung
- Netzwerke
- Office
- Oracle
- Programmiersprachen
- Python
- SAP
- Server-Administration und Systemverwaltung
- Software-Architektur
- Web-Backend
- XML