发布于 2021-06-23 12:44:36
首先,-g和-O2不是对立面。-g指定将生成调试符号,以便将热点与实际代码行相关联。-O2指定应该执行代码优化;这通常不是在您打算在调试器中运行的代码中完成的,因为它使跟踪执行变得更加困难。
分析器度量可执行文件的性能,而不是源代码的性能。如果您分析未优化的可执行文件,您将看到未优化的可执行文件的性能问题所在,但这些问题可能与优化的可执行文件中的问题不同。假设您关心优化的可执行文件的性能(因为这是用户通常运行的),那么您应该对此进行分析。-O2的使用肯定会使您更难理解性能问题所在,但这正是分析代码的本质。
https://stackoverflow.com/questions/68099966
复制相似问题