Java Performance Tuning

Die Analyse und Optimierung der Performance unternehmenskritischer Java-Applikationen im Enterprise-Umfeld stellt eine wichtige Aufgabe und zugleich eine hohe Herausforderung dar. In diesem Seminar erläutern wir die unterschiedlichen Bereiche der Performance-Analyse anhand eines Schichtenmodells vom Betriebssystem über die Java Virtual Machine bis hin zum Quellcode. Performance-relevante Aspekte der Java Virtual Machine, insbesondere die Garbage Collection, werden erläutert und Konfigurations-Parameter vorgestellt. Außerdem beleuchten wir Faktoren der Performance bei verteilten Systemen wie z.B. einer Microservice-Architektur.

Zielgruppe:

Java-Programmierer, Operatoren, QA-Mitarbeiter und IT-Architekten, die das Performance-Verhalten von Java-Applikationen für Laufzeit-Optimierungen analysieren wollen

Voraussetzung:

Kenntnisse der Programmiersprache Java oder Teilnahme am Seminar "Java Programmierung Grundlagen" (P-JAVA-01).

Ziele/Nutzen des Seminars:

  • Sie sind für das Thema "Performance" sensibilisiert und kennen Strategien und Techniken, mit denen die Performance gemessen werden kann.
  • Sie kennen das grundlegende Funktionsprinzip des Java-Memory-Models und die verschiedenen Algorithmen der Garbage Collection.
  • Sie kennen Methoden zur Optimierung Ihrer Applikation, zur Kontrolle des Speicherverbrauchs.
  • Sie können Probleme im Bereich Multithreading sowie die Auswirkung von Synchronisation und Dead-Locks lösen.

Inhalte:

  • Einführung und Konzepte: Performance Grundlagen, Strategien und Techniken, Java Virtual Machine
  • Monitoring- und Profiling-Tools: Monitoring versus Profiling, Schichtenmodell der Performance-Analyse
  • Betriebssystem-Tools: JVM-Tools, Java-Profiler
  • JVM: Garbage Collection: Speicherbereiche und Generationen, Garbage Collection Algorithmen auf der Young und Old Generation, G1 (Garbage First) Garbage Collection, Monitoring des Garbage Collectors, Tuning der JVM
  • Tuning der Applikation: Praxistipps für optimierten Code, Micro Benchmarking, Minimierung des Speicherverbrauchs durch Object Pools, Memory Leaks, WeakReference, OutOfMemory-Analyse
  • Multithreading: Auswirkungen von Synchronisation, Dead-Locks vermeiden und finden
  • Performance- Aspekte von verteilten Systemen: Architektur, Performance Faktoren: Application Server, Microservices, Datenbank, Netzwerkkommunikation

* alle Preise zzgl. der gesetzlich gültigen Mehrwertsteuer