Who should attend
Software-Ingenieure, Internet-/Intranet-Entwickler, projekterfahrene Anwendungsentwickler.
Prerequisites
Java Erweiterungen II - Vertiefung (JAVA-ERW-2) oder vergleichbare Kenntnisse.
Course Objectives
Dieses Seminar wendet sich an erfahrene Java-Programmierer, die hier Anregungen zum Performance-Tuning und zur Speicheroptimierung für Java-Anwendungen erhalten. Neben den elementaren Regeln zur Optimierung werden zur Vertiefung Beispiele aus der Praxis vorgestellt, an denen die Machbarkeit der präsentierten Lösungsvorschläge aufgezeigt wird
Course Content
Vorgehensweise:
- Zielsetzung bei der Optimierung
- Identifizierung von Performanceproblemen
- Optimierungsdreieck
- Der Optimierungszyklus
Werkzeuge und Hilfsmittel:
- Profiler
- Speicher- und System-Monitoring
- Decompiler
- Last- und Performancetests
- Remotezugriff
Laufzeitumgebung:
- Arbeitsweise von JVM, JIT, HotSpot
- Funktionsweise der Garbage Collection
Optimierung von Programmen und effiziente Programmiertechnik:
- Klassische Optimierungen (Schleifen, Invarianten)
- Arrays
- Lebenszyklus und Wiederverwendung von Objekten
- Schwache Referenzen
- Caches und Objekt-Pool
- Objektbeziehungen und Klassendesign
- Multithreading und Threadsynchronisation, Thread Pool - Zeichenkettenverarbeitung
- JDBC
- riskante Optimierungen
Effizienter Einsatz der Klassenbibliotheken:
- Datenstrukturen
- Klassen der Collection-API (Listen, Queues, Mengen, Assoziativspeicher)
- Alternative Collection-Bibliotheken
- Ein-/Ausgabe, NIO
- Serialisierung, XML-Serialisierung
- Alternative Serialisierungsbibliotheken
Verteilte Anwendungen und Datenbanken:
- Value Objects
- Datenbanken: Connection Pools, Prepared Statements, Connection Parameter
- Transaktionen: Isolation Level und parallele Transaktionen
- Typische Optimierungsmaßnahmen im Applikationsserver: Servlets und Enterprise JavaBeans
- verteilte Caches
- Performance Patterns und Antipatterns