Oft wird in einer der letzten Phasen eines Projekts ein Performance-Profiling
gemacht, bei dem die Entwickler versuchen zu verifizieren, dass ihr Programm
die geforderte Performance erreicht. Falls nicht, dann müssen Performance-Engpässe
gefunden, analysiert und beseitigt werden. Zu den bekannten potenziellen
Performance-Problemen gehört u.a. auch der Umgang des Programms mit
dem verfügbaren Speicher, denn auch auch exzessive Speicherallokation,
Memory-Leaks und Garbage Collection können die Performance beeinträchtigen.
Der Workshop widmet sich den Aspekten des Performance-Tunings, die mit
Speicherverbrauch und Garbage Collection zu tun haben. Wir sehen uns Werkzeuge
an, mit denen man Speicher- und Garbage Collection Probleme analysieren
kann und besprechen Tuning-Strategien. Da insbesondere das Tuning des Garbage
Collectors JVM-spezifisch ist, beschränken wir uns auf die JVM von
Sun.
Ziel des Workshops ist die Vermittlung von fundiertem Praxiswissen für
die industrielle Java-Programmierung. Aus diesem Grund wird im Seminar
nicht nur Theorie-vermittelt, sondern das Hauptinteresse gilt der praktischen
Umsetzung. Ein beträchtlicher Teil des Workshops besteht deshalb aus
Übungen. Dabei wird erklärt, wie Profiling-Tools funktionieren,
was sie leisten, wie man mit ihnen umgeht und wie man ihre Resultate sinnvoll
interpretiert. Wir üben, wie man die Tools verwendet, um Engpässe
zu finden und nach erfolgtem Tuning den Erfolg eines Tuning-Versuchs zu
verifizieren.
Inhalte
Prinzipien und Algorithmen der Garbage Collection
Mark-and-Sweep, Fragmentierung und Kompaktierung generational GC parallele,
konkurrierende und inkrementelle GC
JVM Profiling
Tool-Architektur Strategien fürs Memory-Profiling Memory Leaks, Unwanted
References, Loitering Objects
GC Profiling
GC Profiling GC Tuning Optionen der Sun JVM Tuning zur Durchsatzerhöhung
Tuning zur Pausenreduktion
|