profiler.html | ||
Sprachen »de« en 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
Dieser Server (de) 2024-05-04 18:16:25 Defragmentieren (de) 2023-12-21 12:43:54 Vorverstärker (de) 2023-12-21 12:43:54 Sunday Webserver (de) 2023-12-21 12:43:54 Linker (de) 2023-12-21 12:43:54 Partitionieren (de) 2023-12-21 12:43:54 |