Re: profiling
Philipp Thomas <[email protected]> Wed, 17 Feb 2010 18:30:14 +0100
| Newsgroups | gmane.linux.suse.programming |
|---|---|
| Organization | SUSE LINUX Products GmbH, G F: Markus Rex, HRB 16746 (AG Nürnberg) |
| Message-ID | <[email protected]> |
Hi Thomas * Thomas Hertweck ([email protected]) [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: [email protected] For additional commands, e-mail: [email protected]