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.
Ihre Trainerin
Angelika Langer arbeitet als unabhängige Trainerin mit eigenem Kursprogramm basierend auf ca. 25 Jahren Erfahrung in der Softwareentwicklung, u.a. in C++ und Java. Sie ist Autorin zahlreicher Fachveröffentlichungen zum Thema Java und C++, darunter die Kolumne „Effective Java“ im JavaMagazin, das Online Java Generics FAQ, sowie das Buch „Standard C++ IOStreams“. Sie ist Referentin auf internationalen Fachkonferenzen im In- und Ausland. Aktuell liegt ihr Hauptinteresse im Training, Coaching und Mentoring im Bereich der objektorientierten Softwareentwicklung mit C++ und Java.
Inhalt
Performance Grundlagen
- Was ist Performance? – Performance-Konzepte
- Performance im Entwicklungsprozess
- Performance-Messungen
Performance in der Entwicklungsphase
- Programmiertechniken
- Elementares
- Datenstrukturen
- I/O
- Micro-Benchmarking
- Statikstik
Laufzeitumgebung
- Speicherverbrauch
- Class Loading
- Garbage Collection
- JVM-Benchmarks
Profiling, Monitoring & Tuning
- Profiling der Anwendung
- Werkzeuge und ihre Architektur
- Strategien fürs Profiling
- Performance-Engpässe
- Speicherallokations-Engpässe
- Memory Leaks
- Auswahl des richtigen Werkzeugs
-
- Garbage Collection Profiling(für die Sun/Oracle JVM)
- Klassische Garbage-Collection-Algorithmen
- Garbage First (G1) Collector (JDK 7)
- Werkzeuge und Techniken fürs GC Profiling
- Tuning zwecks Durchsatzmaximierung
- Tuning zwecks Pausenminimierung
- G1-Tuning
- JDK Profiling & Monitoring Support
- JMX and JVM Management Beans
- jconsole und andere Monitoring Tools
Voraussetzungen
Keine