Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : int profil () richtig benutzen???



24dan
16-03-2006, 17:31
Hallo Forum,
ich weis leider nicht wie ich die funktion int profil () richtig benutze?

Was für mich unklar ist:


Main()
{
funktion1( )
funktion2( )
funktion3( )
}

wo setze ich int profil() jetzt ein ???
am Anfang und am Ende?
oder nur am Anfang?

gorba
17-03-2006, 10:41
also profil() ist ja ein funktionsaufruf, genauso wie:
funktion1()
funktion2()
funktion3()

da für mich nicht klar ist, was profil() macht kann ich dir auch nicht sagen, wo du diese funktion aufrufen musst!

also, sachen beachten wen du postest:

- was willst du machen?
- was hast du schon an code?
- fehlermeldungen?
- mögliche lösungsansätze?

24dan
20-03-2006, 15:08
SYNOPSIS
#include <unistd.h>

int profil(u_short *buf, size_t bufsiz, size_t offset, u_int scale);

DESCRIPTION
This routine provides a means to find out in what areas your program
spends most of its time. The argument buf points to bufsiz bytes of
core. Every virtual 10 milliseconds, the user's program counter (PC)
is examined: offset is subtracted and the result is multiplied by scale
and divided by 65536. If the resulting value is less than bufsiz, then
the corresponding entry in buf is incremented. If buf is NULL, profil-
ing is disabled.

Ja das macht also profil()....

Joghurt
20-03-2006, 18:43
Nimm besser gleich einen richtigen Profiler, wie gprof...

Du musst das Programm dann mit der Option "-pg" compilieren (ich gehe davon aus, dass du gcc nutzt)


$ gcc -pg [weitere parameter] Program.c -o Programm
# programm ausführen
$ ./Programm
# laufen lassen
# nun das profil erstellen
$ gprof Programm

Mehr Infos gibt
man gprof

24dan
21-03-2006, 14:45
vielen Danke.
Ich schreibe in c++ und verwende den g++.
Die Option -pg habe ich in meinem Makefile schon ausprobiert.


Makefile
CC = g++ -pg


Da kommt nichts bei raus...

Joghurt
21-03-2006, 15:18
1. Müsste es CXX = g++ -pg heißen.
Zweitens, wir das .out vom Programm selbst erstellt, wenn es läuft (es ist deshalb auch langsamer)

24dan
21-03-2006, 15:38
Thanks a lot... also ich hatte das falsch gemacht. Richtig ist es jetzt in meinem make:


CXX = g++ -pg -O

(+der optimierung -O) und das gprof klappt exakt.

gorba
21-03-2006, 16:33
is -o nicht ne option um dem ding n namen zu geben:
-o NAME_MEINES_PROGS ?

jeebee
21-03-2006, 17:20
und das grosse -O, je nach gusto mit einer zusätzlichen Spezifizierung der Optimierungsstufe wie 2,3,s ist eben für die Optimierung der ausführbaren Datei da.

24dan
21-03-2006, 21:31
@jeebee
danke...