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]