Java Optimierung und Performance Tuning

Empfohlene Schulungsdauer: 3 Tage, insgesamt 24 Unterrichtsstunden à 45 Minuten

Kursziele

Javas Vorteile in hochperformanten, kommerziellen Systemen beweisen Beispiele wie eBay oder Google Calendar. Doch die Optimierung von Java-Engpässen ist nicht trivial, und hartnäckig hält sich das Vorurteil, Java-Programme seien grundsätzlich langsamer. Unser Optimierungsseminar gibt eine Schritt-für-Schritt-Anleitung zum Erkennen und Lösen solcher Performance-Probleme. Das Hauptziel des Kurses stellt die Analyse der Engpässe über Performance-Monitoring Tools dar. Seminarteilnehmer lernen, wie nach dem Erkennen einer Problemstelle mit Hilfe allgemeingültiger Strategien Programme effizienter laufen und weniger Hauptspeicherplatz einnehmen. Die Weiterbildung behandelt insbesondere Optimierungsstrategien zur Verbesserung der Laufzeit von Java Enterprise-Anwendungen, wie zum Beispiel effiziente Caching-Strategien, die Beschleunigung einer Datenbankanbindung oder die Optimierung beim Austausch von Web-Service-Nachrichten.

Zielgruppe

Software-Entwickler

Kursvoraussetzungen

Gute praktische Kenntnisse in Java und längere Projekterfahrung.

Seminarinhalte

  • JVM, JITs, Compiler und native Code Compiler

    - Arbeitsweise einer JVM
    - Interpretierende JVM
    - Java Just in Time Compiler (JIT)
    - Adaptive Compilierung bei HotSpot
    - Tuning-Parameter einer JVM
    - Bytecode-Kompression
    - Java-Stack: Hardware, Betriebssystem, JVM, Java-Programme
  • Performance messen, Benchmarking, Profiling

    - Profiler Modi verstehen und richtig deuten
    - Macro- und Micro-Benchmarks
    - Benchmark-Programme für Java VM und Java Enterprise-Anwendungen
    - Durch Profiling Performance-Probleme erkennen: das Pareto-Prinzip
    - Profiling-Tools: Eclipse Profiler, Netbeans Profiler, InfraRED, VisualVM
    - Speicher-Monitoring
    - Remote Monitoring über JMX
    - JVMTI
  • Klassische Compileroptimierungen

    - Mathematisches
    - Schleifenoptimierungen
    - Invarianten
  • Leben und Tod: Der Werdegang der Objekte

    - Lebenszyklus der Objekte
    - Schwache Referenzen
    - Objektpools und Cache
    - Arbeitsweise von Garbage Collection, Garbage Collection Algorithmen
    - Speicherlecks erkennen und vermeiden
  • Java-typische Optimierungen

    - Strings und Zeichenkettenoperationen
    - Klassen- und Methodendesign
    - Kosten von Ausnahmen
    - Geladene Klassen überwachen, Klassenlader steuern
  • Nebenläufigkeit durch Threads

    - Parallelisieren von Aufgaben
    - Kosten durch Thread-Synchronisation
    - Thread-Pools
    - Fork/Join-Framework
  • Utility-Klassen im der Java-Bibliothek

    - Datenstrukturen und Algorithmen
    - Große Ganz- und Fließkommazahlen
    - Zeitberechungen
  • Ein- und Ausgabe, XML und Netzwerk

    - Pufferung
    - Serialisierung
    - New I/O (NIO)
    - StaX optimal einsetzen
    - Validierung von XML-Dokumenten, Caching
  • Performante Datenbankzugriffe über JDBC

    - Datenbankanbindungen beschleunigen
    - Connection-Pools
    - PreparedStatements
    - Isolation Level bei Transaktionen
    - Datenbank Locking: Optimistisches/Pessimistisches Locking
    - Lazy Load Pattern
  • Enterprise Java

    - Einführung in Performance-Pattern/Anti-Pattern bei Java EE-Anwendungen
    - Optimierungen von mehrschichtigen Anwendungen
    - Java EE Caching-Strategien
    - HttpSession
    - Lasttests zum Aufspüren von Engpässen mit JMeter
    - Verteilte Programmierung (RMI/CORBA)
    - Java EE Pattern zur Minimierung der übertragenen Datenmenge: Value Objects
    - Web-Services modellieren
    - Servlets und Java Server Pages (JSP): Schnell vom Request zum Response
    - Enterprise Java Beans (EJB)
    - Optimierung des OR-Mappers
    - Java Message Service (JMS)
    - Applikationsserver im Produktions- und Entwicklungs-Modus

Schulungsunterlagen

Deutschsprachige Unterlagen (Kopien der Folien), Zertifikat.

Eingesetze Seminar-Software

Als Entwicklungsumgebung wird Java SE 6 von Sun zusammen mit Eclipse 3.6 oder NetBeans eingesetzt.

Schlagwörter

Weiterführende Seminare

Refactoring, Design Patterns (Entwurfsmuster) in Java, Effektiv Java programmieren

[Addthis] [Google Bookmarks] [Yahoo! Bookmarks] [Delicius] [Mister Wong]

 

[Nach oben]