Über diese Schulung
In diesem Seminar geht es um Programmiertechniken für performance-optimierte Anwendungen und um Performance-Profiling und -Analyse inklusiver entsprechender Tuning-Techniken.
Performance ist in praktisch jedem Projekt und jeder Anwendung von Bedeutung - ganz unabhängig von der eingesetzten Technologie oder der benutzten Programmiersprache. Um hochperformante Softwaresysteme bauen zu können, benötigen Entwickler fundiertes Wissen über die Performance-Eigenschaften der von Ihnen eingesetzten Technologie und Programmiersprache.
Dieses Seminar richtet sich an Java-Programmierer und konzentriert sich auf die in Java-relevanten Performance-Themen.
Der Schwerpunkt ist Core Java - die Programmiersprache selbst, die Klassen des JDK sowie die JVM. Die besprochenen Themen sind relevant für jeden Java-Entwickler unabhängig von seinem jeweiligen Projekt-Kontext. Spezifische Architekturen, wie bestimmte Datenbanksysteme, Communication Frameworks, Web- oder Application-Server, etc. betrachten wir in diesem Kurs nicht, weil Techniken zur Performance-Optimierung in diesen Bereichen jeweils abhängig von den Spezifika der eingesetzten Produkte sind. Stattdessen konzentrieren wir uns auf den Kern von Java, der für jeden Java-Entwickler von Interesse ist. Bereits in der alltäglichen Programmierpraxis lassen sich Performance-Fallen vermeiden und gezielt Performance-Optimierungen durchführen.
Die Seminarteilnehmer erlernen Programmiertechniken für die effiziente Nutzung von Java und seinem Laufzeitsystem mit dem Ziel, performance-optimale Anwendungen zu entwickeln. Es werden Benchmarking- und Profiling-Techniken erläutert und geübt, um die Teilnehmer in die Lage zu versetzen, Performance-Engpässe zu identifizieren und mit passenden Tuning-Maßnahmen zu beseitigen. Dabei wird auch der Einfluss der virtuellen Maschine auf die Performance der Anwendung berücksichtigt. Ein Teil des Seminars widmet sich der JVM (von Sun/Oracle), wie sie funktioniert, welchen Einfluss sie auf die Performance hat, wie man ein JVM-Profiling und -Tuning macht.
Dieses Schulungsmodul kann mit allen aktuellen Java-Versionen (z.B. 23, 22, 21, 20) entsprechend Ihren Wünschen durchgeführt werden.
Dieses Schulungsmodul kann mit allen aktuellen Java Enterprise Edition-Versionen (z.B. 10, 9, 8, 7) entsprechend Ihren Wünschen durchgeführt werden.
Individuell anpassbarer Programmvorschlag/Lehrplan für das Schulungsmodul High-Performance Java
Dies ist nur ein Vorschlag für eine Agenda. Wie bei allen unseren Maßnahmen können Sie Themen streichen, ergänzen und priorisieren. Zudem können Sie diese Inhalte mit anderen Themenmodulen kombinieren. Egal ob Sie eine Schulung und/oder Beratung wünschen: Die Maßnahme wird auf Ihre Wünsche und Bedürfnisse genau maßgeschneidert!
Performance Grundlagen
- Was ist Performance? – Performance-Konzepte
- Performance im Entwicklungsprozess
Performance-Überlegungen in der Entwicklungsphase
Programmierung
- Elementares
- Datenstrukturen / Collections
- I/O
Micro-Benchmarking
- Performance-Messungen
- Typische Fehler beim Benchmarking
- JIT Compilation
- Statistik
- JMH – Java Microbenchmarking Harness
Performance-Analyse und Tuning
Profiling der Anwendung
- Werkzeuge und ihre Architektur
- Strategien fürs Profiling
- Performance-Engpässe
- Speicherallokations-Engpässe
Auffinden von Memory Leaks
- Typische Memory Leaks
- Live-Analyse
- Post-Mortem Analyse (via MAT)
Garbage Collection Tuning
- Klassische Garbage-Collection-Algorithmen
- Garbage First (G1) Collector
- Pausenlose Garbage Collectoren (ZGC & Shenandoah)
- Werkzeuge und Techniken fürs GC Profiling
- Tuning zwecks Durchsatzmaximierung
- Tuning zwecks Pausenminimierung
- G1-Tuning