Utilizamos g ++ 4.2.4 y estoy tratando de rastrear algunos problemas de rendimiento en mi código.¿Qué es la función __tcf_0? (Visto al usar gprof y g ++)
estoy corriendo gprof para generar el perfil, y yo estoy recibiendo el siguiente "extraño" en el que la función más caro es __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
Esta función aparece a continuación, llama a la mayor parte del usuario funciones (es decir, es la que se llama desde main). La explicación más cercana que encontré para esto fue here, pero ese enlace se refiere a objetos estáticos y atexit, y no creo que esto se aplique en mi caso.
Si es útil, estoy usando Boost (program_options and fusion) y las bibliotecas HDF5.
ACTUALIZACIÓN:
El comando que uso cuando la construcción es:
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
He agregado el comando de compilación que usamos para la pregunta. Tenemos un sistema de compilación bastante flexible, y esto está utilizando una configuración especial de configuración "gprof" que he utilizado con éxito en el pasado. Entonces, en principio, * pienso * Tengo todos los ajustes que se necesitan. –
Ambas respuestas son bastante correctas, pero el representante probablemente sea más útil para usted. –