Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Mann Wurm Geändert vor über 10 Jahren
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
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?
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.