Stefan Heimers Homepage | ||
|
Sprachen »de« en Blog Über mich Fotos Basel Zürich Ferien Skiferien 2008 Glarus 2005 Elektronik UKW Sender Vorverstärker Radios Philette 837A Akkord Pinguin Reparaturen Riemenmasse SVR4004EL PWM-Verstärker IR Verlängerung Telefonmikro VCR N1700 VCR-Pflege Video-Optokoppler Telefongebührenzähler Videoverstärker Nuvistor Software sbt shcms Dieser Server Sunday Webserver KDE Basler Dialekt sp504write Optimierung für Administratoren Defragmentieren Partitionieren Debugcode entfernen für Anwender Windowmanager Programmauswahl Links für Programmierer Compilercache »Profiler Beispiel Ganz schlimm! Compileroptionen Zeichenketten Linker KISS Bedingte Anweisungen Flohmarkt Elektr. Bauteile ICs analog Transistoren LEDs ICs digital Delay Lines PC-Zubehör Humbug Radioerinnerungen Radio Europa Andere Sender Regio FM Radio DRS Radio One (St. Louis bei Basel) Gästechat Benutzerkonto
|
ProfilerEinführungProgramme sind normalerweise in viele einzelne Funktionen aufgeteilt. Manche werden selten, andere sehr häufig aufgerufen. Bei manchen dauert die Ausführung lange, bei anderen nur kurz. Für den Geschwindigkeitsbewussten Programmmierer ist es interessant herauszufinden, welche Funktionen besonders häufig aufgerufen werden, und in welchen Funktionen am meisten Zeit verloren geht. Daraus kann er schliessen, welche Funktionen er optimieren sollte, oder bei welchen er einen zu häufigen Aufruf vermeiden muss, weil sie zu lange dauert. Programme, die bei der Erstellung dieser Statistiken helfen werden Profiler genannt. Im Folgenden wird als Beispiel die GNU-Version des Profilers, gprof, an einem kleinen Beispiel beschrieben. Gprof - BeispielVorbereitungen
Um Programme mit einem Profiler zu untersuchen, müssen diese mit einer speziellen Compileroption übersetzt werden. Bei GNU-Compiler ist dies gcc -pg -o beispiel beispiel.c Benutzung von GprofWird ein Programm, das mit der option -pg übersetzt wurde ausgeführt, hinterlässt es im aktuellen Verzeichnis eine Datei namens gmon.out. Wurde zum Beispiel das Programm kcalc mit der Option -pg übersetzt, kann man gmon.out mit folgendem Befehl auswerten lassen: gprof ./kcalc gmon.out > auswertung.txt auswertung.txt kann jetzt mit einem normalen Texteditor geöffnet werden und enthält die Statistischen Angaben wie im folgenden Beispiel: Flat profile: Each sample counts as 0.01 seconds. % cumulative self self total time seconds seconds calls us/call us/call name 100.00 0.01 0.01 1 10000.00 10000.00 ConfigureDialog::setupSettingPage(void) 0.00 0.01 0.00 1233 0.00 0.00 QShared::deref(void) 0.00 0.01 0.00 959 0.00 0.00 QString::~QString(void) 0.00 0.01 0.00 807 0.00 0.00 QValueListNodeEine genauere Anleitung zu GNU prof ist zu finden unter: http://www.gnu.org/manual/gprof-2.9.1/html_mono/gprof.html Interpretation der ResultateGprof zeigt die Funktionsaufrufe sortiert nach der Gesamtzeit, die sie in Anspruch genommen haben. Um ein Programm schneller zu machen, lohnt es sich die zu oberst angezeigten Funktionen nach möglichen Optimierungen zu durchsuchen, oder die Häufigkeit ihres Aufrufs zu verkleinern. Profiler Links
Diverse Profiling-Tools:
© 2000 - 2001 by Stefan Heimers |
Kürzlich geändert
VCR N1700 (de) 2009-11-18 14:06:37 Über mich (de) 2009-11-18 14:04:15 Radio Europa (de) 2009-08-30 17:43:32 Radioerinnerungen (de) 2009-07-18 12:49:46 Radio DRS (de) 2009-07-15 16:32:10 Radio One (St. Louis bei Basel) (de) 2009-06-15 16:57:31 |