在O1或O3上调用Callgrind进行性能分析?

时间:2014-08-12 15:04:07

标签: c++ gcc valgrind callgrind

我需要分析我的C ++代码,valgrind --tool=callgrind是一个非凡的工具。但是,我想知道我是否应该使用-g -pg -O1-g -pg -O3(GCC 4.4.7)分析我的代码?后者可以更准确地描述我的程序的性能,但是我担心-O3会混淆探查器并混淆源代码功能的实际瓶颈。也许我只是害怕老婆婆的故事,但我想我应该确定在进行可能的几个小时测试之前确定。

1 个答案:

答案 0 :(得分:2)

另一个stackoverflow中的这个线程可能会让你清醒:optimization flags when profiling

问题不在于优化,而是使用优化进行调试(-g -pg)。

正如quantdev所说,你应该“始终使用与用于创建生产二进制文件的选项相同的选项”,并且您将创建一个包含调试信息的生产二进制文件。

如果线程不够,请告诉我们。