Lernziele
Seminarinhalt
Lernziele
- Die Teilnehmenden sollen Anregungen zum Performance-Tuning und zur Speicheroptimierung für Java-Anwendungen erhalten.
- Die Teilnehmenden erlernen anhand von Beispielen aus der Praxis Regeln zur Optimierung und sehen, welche Möglichkeiten es alles gibt.
Seminarinhalt
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