3

我需要通过 VC++ 分析使用英特尔编译器编译的应用程序。我正在使用 VTune 来分析我的代码。

我的理解是,在发布模式下,我将没有探查器在调试模式下分析我的代码所必需的调试信息,分析的结果将不相关。

我应该怎么办 ?是否可以在发布模式下添加调试信息?如何设置此模式?

如果是这样,我还会从所有优化(内联等)中受益吗?

4

3 回答 3

4

您当然应该启用优化(编译器选项/O3)进行分析。/Zi 是英特尔编译器开关(在 Windows 上),用于启用调试信息。

由于优化,调试信息中可能会由于内联而缺少某些功能,但 VTune 会解决这个问题。

于 2009-05-05T10:25:12.430 回答
3

即使在发布目标中,您也可以生成程序数据库文件 (PDB)。转到项目属性,链接器/调试并检查选项“生成程序数据库文件”。它通常类似于“$(TargetDir)$(TargetName).pdb”。现在,这取决于 VTune 是否知道如何解释 PDB 文件......

于 2009-05-05T10:53:34.953 回答
1

函数内联和进程间优化将使您的配置文件难以解释。这就是为什么在调试和发布模式下进行分析是个好主意。如果发布模式仅显示函数 foo 使用了 80% 的程序时间,您可以使用调试配置文件查看内联到 foo 中的函数 bar 正在使用 foo 的 60% 的时间。

于 2009-05-05T14:36:41.110 回答