Sto provando a profilare un'applicazione C++ con gprof su una macchina che esegue OSX 10.5.7. Io compilo con g ++ nel solito modo, ma usando i flag -pg, eseguo l'applicazione e provo a visualizzare il grafo delle chiamate con gprof.gprof non riporta il tempo accumulato
Sfortunatamente il mio grafico di chiamata contiene tutti gli zeri per tutte le colonne di tempo. I valori nelle colonne "chiamate" hanno valori ragionevoli, quindi sembra che qualcosa sia stato profilato, ma sono sconcertato dalla mancanza di altri dati.
Tutti i miei file di origine vengono compilati in modo simile:
g++ -pg -O2 -DNDEBUG -I./ -ansi -c -o ScenarioLoader.o ScenarioLoader.cpp
ho quindi eseguire 'Ar' per raggruppare tutti i file oggetto in una libreria. Più tardi, collego e corro gprof come così:
g++ -pg -lm -o vrpalone vrpalone.o ../src/atomicprof.a lastbuild.o
./vrpalone
gprof gmon.out | less
Tutte le idee?
** gprof ** è in circolazione dal 1982. Da allora, la progettazione di computer e lingue ha fatto enormi progressi, ma la nostra comprensione collettiva dei problemi di prestazioni è progredita molto poco.Parliamo ancora approssimativamente degli stessi concetti introdotti da ** gprof ** e non abbiamo cercato di comprenderli veramente. [Ecco una discussione e presentazione di alcune idee più recenti.] (Https://stackoverflow.com/questions/1777556/alternatives-to-gprof/1779343#1779343) –