- Vorgehensweise:
- Zielsetzung bei der Optimierung
- Identifizierung von Performanceproblemen
- Optimierungsdreieck
- Der Optimierungszyklus
Werkzeuge und Hilfsmittel:
- Profiler
- Speicher- und System-Monitoring
- Last- und Performancetests
- Microbenchmarks
- Decompiler
Laufzeitumgebung:
- Arbeitsweise von JVM, JIT, HotSpot
- Speicherverwaltung
- Garbage-Collection-Algorithmen und Implementierungen
Optimierung von Programmen und effiziente Programmiertechnik:
- Klassische Optimierungen (Schleifen, Invarianten)
- Arrays
- Lebenszyklus und Wiederverwendung von Objekten
- Spezielle Referenztypen
- Caches und Objekt-Pools
- Zeichenkettenverarbeitung
Effizienter Einsatz der Klassenbibliotheken:
- Datenstrukturen
- Klassen der Collection-API (Listen, Warteschlangen, Mengen, Assoziativspeicher)
- Alternative Collection-Bibliotheken
- Ein-/Ausgabe, NIO
- Serialisierung, alternative Serialisierungsbibliotheken
Multithreading und Parallelverarbeitung:
- Plattform-Threads und virtuelle Threads
- Threadpools
- Java Memory Model und Synchronisierung
- Java-Streams seriell und parallel: Einsatzmöglichkeiten und typische Fallstricke
Methode
In unserem Seminar vermitteln Ihnen unsere Trainer:innen die Schulungsinhalte anhand von Kurzvorträgen, die durch Diskussionen mit den anderen Teilnehmenden, praktische Übungen und Workshops angereichert werden. Praktische Arbeiten am System, z.B. Performance-Probleme analysieren, Messungen durchführen, Profilergebnisse auswerten, sorgen dafür, dass Sie die gezeigten Optimierungstechniken direkt im Code anwenden. Der Fokus liegt auf reproduzierbaren Vorgehensweisen, die Sie anschließend in Ihren eigenen Projekten anwenden können.