为啥我们在使用 Vtune 进行分析时需要调试信息?

Posted

技术标签:

【中文标题】为啥我们在使用 Vtune 进行分析时需要调试信息?【英文标题】:Why do we need debug information during profiling using Vtune?为什么我们在使用 Vtune 进行分析时需要调试信息? 【发布时间】:2013-11-16 05:48:13 【问题描述】:

当我们使用 VTune 分析应用程序时,我知道应用程序应该在发布模式下编译,这样它就只有相关代码,没有用于调试或其他东西的额外代码。但是following this article,我注意到它提到收集调试信息。为什么需要此调试信息?由于这些调试信息的开销,它不会导致时序报告不准确吗?

【问题讨论】:

【参考方案1】:

调试信息从代码中的位置映射到生成该代码的源文件中的位置。否则,分析器可以测量可执行文件,但无法将结果与源代码相关联,以便您了解您编写的代码的哪些部分与其测量的可执行文件的部分相关。

不,仅包含调试信息不​​会导致不准确。您关心的部分只是添加到可执行文件中的额外信息,用于说明哪些代码来自哪些源文件的哪些部分。调试信息远不止这些(例如,关于位置和变量类型的信息),但它与大多数分析无关,也不会导致测量代码不准确。

【讨论】:

以上是关于为啥我们在使用 Vtune 进行分析时需要调试信息?的主要内容,如果未能解决你的问题,请参考以下文章

带有 mingw 的 Vtune 分析器

哪个是使用 VTUNE 进行分析的更好方法:独立或与 MSVC 集成

使用 VS2012/VTune 进行缓存分析

VTune Amplifier XE 2015 架构分析

为啥我们使用 jvm 参数来调试“server=y”?

Dev c++程序不能调试为啥?