Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Vortrag III Hier in der Vorlesungszeit! Anwesenheitspflicht Jede Gruppe hat 6 Minuten! Stellt eure GUI vor –was ihr besonderes gemacht habt –Spektakuläre.

Ähnliche Präsentationen


Präsentation zum Thema: "Vortrag III Hier in der Vorlesungszeit! Anwesenheitspflicht Jede Gruppe hat 6 Minuten! Stellt eure GUI vor –was ihr besonderes gemacht habt –Spektakuläre."—  Präsentation transkript:

1

2 Vortrag III Hier in der Vorlesungszeit! Anwesenheitspflicht Jede Gruppe hat 6 Minuten! Stellt eure GUI vor –was ihr besonderes gemacht habt –Spektakuläre Gimmicks

3 Profiling & Performance Optimization Motivation –Anwendung ist langsam! –Nicht-funktionale Anforderungen Z.B. Antwortzeit 10ms, läuft mit 64MB RAM Erfahrungen –90%/10%-Regel: 90% der Zeit wird nur 10% des Code ausgeführt –Performance vs. gutes Design –Moores Law –Programme warten die meiste Zeit auf GUI

4 Auftretende Probleme Zu viel Speicherverbrauch –Memory Profiling Anwendung läuft zu langsam –Execution Time Profiling Anwendung ist langsam, obwohl die CPU nichts tut –Thread-Synchronisationsprobleme? –Netzwerkverkehr?

5 Memory Profiling Wie viele Objekte (von welchem Typ) gibt es im Heap? Wo werden diese angelegt? Wer benutzt/referenziert sie? –Welcher Thread? Grosser Objekt-Graph (Heap) Memory Leaks

6 Execution Time Profiling In welcher Methode/Zeile des Programms wird die meiste Rechenzeit verbraucht? Wer ruft diese auf? Werden eventuell viele Objekt- Instanzen erzeugt und wieder verworfen? Struktur: Baum oder auch Call Graph

7 Profiling Systematisches Untersuchen des Laufzeiterhalten eines Programms –Naiver Ansatz Zeitmessung im Programm (z.B. System.currentTime..() Speicherverbrauch regelmäßig abfragen Unterstützung der Platform: –Bei Java - Heap Profiling Interface –Profiling-Software (z.B. in Eclipse)

8 Profiling - Ansätze Manuell: –Debugger – Breakpoint o. Suspend - Stack untersuchen Sampling bzw. statistisches Profiling Code instrumentieren –Langsamer Java: Profiling-Interface der JVM –Noch langsamer

9 Java Hprof Im JDK enthalten, mit -Xprof Parameter zu starten Erzeugt eine Profiling-Trace-Datei –java.hprof.txt Nur textuell (Aufruf & Ergebnis!) Nur 10% Performance-Verlust bei Sampling Kann alles was man braucht

10 Eclipse TPTP Test and Performance Tools Platform Hier nur: Profiler Tools –Arbeitet über die Trace/Profiling- Schnittstelle der JVM, daher langsam (ca. Faktor 5) Grafische Auswertung Interaktions-/Sequenzdiagramme

11 Beispiel: Kampf Mice gegen Cats, 20x100 Runden

12

13

14

15 Bottlenecks Kritischer Bereich bezüglich der Performance –Gemeinsame Ressourcen Thread-Synchronisation –Netzwerkverkehr Lokaler vs. Remote-Methodenaufruf Bandbreite (vgl. Speicherverbrauch) Behebung: –Vorher bewerten/messen, ändern, nachher messen!

16 Thread Synchronisation Mutex, Semaphore, Monitor Aktives Warten Passives Warten –In Java abgebildet durch wait() und notify() –java.util.concurrent Paket Vorsicht: Heisenbugs

17 Sonstiges Langwierige Tasks verstecken –Im Hintergrund abarbeiten Garbage Collector Stress Test –Läuft die Anwendung unter hoher Last? –Skaliert die Anwendung im Internet?


Herunterladen ppt "Vortrag III Hier in der Vorlesungszeit! Anwesenheitspflicht Jede Gruppe hat 6 Minuten! Stellt eure GUI vor –was ihr besonderes gemacht habt –Spektakuläre."

Ähnliche Präsentationen


Google-Anzeigen