我们使用的是 g++ 4.2.4,我正在尝试追踪代码中的性能问题。为了生成分析报告,我运行了 gprof,但发现最耗时的函数是 __tcf_0,这让我感到困惑。
这个函数似乎调用了我大部分的用户函数(即从主函数中调用它)。我找到的最接近的解释在这里,但是该链接涉及静态对象和atexit,我不认为这适用于我的情况。
如果有帮助的话,我正在使用Boost(program_options和fusion)和HDF5库。
更新:
我构建时使用的命令是:
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
这个函数似乎调用了我大部分的用户函数(即从主函数中调用它)。我找到的最接近的解释在这里,但是该链接涉及静态对象和atexit,我不认为这适用于我的情况。
如果有帮助的话,我正在使用Boost(program_options和fusion)和HDF5库。
更新:
我构建时使用的命令是:
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