Hi Thomas * Thomas Hertweck (Thomas.Hertweck@web.de) [20100213 17:53]:
Um fuer ein Programm ein gprof Profil zu erstellen, muss man dessen Quellcode mit -pg compilieren und dann das Executable mit -pg linken.
Zwei Fragen:
Ich habe jetzt mal unseren Toolchain-Spezialisten gefragt. Hier seine Antwort: -----------------------------
1) Welchen Einfluss hat das Profiling selbst auf die Laufzeit des Programms?
Jede mit -pg compilierte Funktion ruft beim Entry mcount auf, welche dann den Stack abläuft (backtraces) und ein bisschen Statistik macht. Das Programm wird also langsamer.
Gibt es hierzu ein paar Faustregeln?
Hängt davon ab wieviele Funktionsaufrufe gemacht werden. Wenn es im Verhältnis zur Gesamtlaufzeit sehr viele sind (z.B. viele kleine triviale Helperfunktionen), dann kann das Programm schonmal doppelt so langsam werden. Üblich sind aber eher 1%-10% .
2) Wenn der Quellcode zwar mit -pg compiliert wird (z.B. eine Bibliothek), aber das Executable nicht mit -pg gelinkt wird, dann erhaelt man letztendlich keine gmon.out Datei. Hat das Compilieren mit -pg dennoch Auswirkungen auf die Laufzeit/Performance des Programms?
Ja. Obige calls nach mcount werden natuerlich trotzdem gemacht. Nur der abschliessende Dump der gesammelten Information fehlt. ----------------------------- Ich hoffe das hilft Dir weiter. cheers Philipp -- To unsubscribe, e-mail: opensuse-programming-de+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-programming-de+help@opensuse.org