我需要分析我的C++代码,而valgrind --tool=callgrind
是一个出色的工具。但是,我想知道是否应该使用-g -pg -O1
或-g -pg -O3
(GCC 4.4.7)对代码进行性能分析?后者更准确地描述了我的程序的性能,但是我担心-O3
会混淆分析器并混淆真正的瓶颈是什么源函数。也许我只是害怕老太太的故事,但我认为在进行可能需要数小时的测试之前,我应该先确认一下。
最佳答案
另一个stackoverflow中的该线程可能使您头脑清醒:optimization flags when profiling
问题不是通过优化进行概要分析,而是通过优化(-g -pg)进行调试。
正如quantdev所说,您应该“始终使用与用于创建生产二进制文件的选项相同的选项”,并且您将继续使用调试信息创建一个生产二进制文件。
如果线程不够,请告诉我们。
关于c++ - O1或O3上的Callgrind是否进行性能分析?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25267783/