Utilizziamo g ++ 4.2.4 e sto cercando di rintracciare alcuni problemi di prestazioni nel mio codice.Che cos'è la funzione __tcf_0? (Visto quando si usano gprof e g ++)
Io corro gprof per generare il profilo, e sto ottenendo il seguente "stranezza", in quanto la funzione più costoso è __tcf_0:
Each sample counts as 0.01 seconds.
% cumulative self self total
time seconds seconds calls ms/call ms/call name
40.00 0.04 0.04 1 40.00 95.00 __tcf_0
appare quindi questa funzione per le chiamate maggior parte del mio utente funzioni (cioè è quella chiamata dal principale). La spiegazione più vicina che ho trovato per questo era here, ma quel collegamento si riferisce ad oggetti statici e atexit, e non penso che ciò si applichi nel mio caso.
Se è utile, sto usando Boost (program_options e fusion) e le librerie HDF5.
UPDATE:
Il comando che uso quando costruzione è:
g++ -Wreturn-type -Wunused -Winline -pg -DLINUX -DHAS_SETENV \
-DFUSION_MAX_MAP_SIZE=15 -DFUSION_MAX_VECTOR_SIZE=15 -g -O0 \
--param large-function-growth=300 --param inline-unit-growth=200
Ho aggiunto il comando di build che usiamo per la domanda. Abbiamo un sistema di compilazione abbastanza flessibile, e questo sta utilizzando uno speciale "gprof" per la configurazione che ho usato con successo in passato. Quindi in linea di principio penso * Ho tutte le impostazioni necessarie. –
Entrambe le risposte sono corrette, ma la ripetizione è probabilmente più utile per te. –