2009-05-05 34 views
2

我需要通过VC++编写用intel编译器编译的应用程序。 我正在使用VTune来剖析我的代码。应该为分析设置哪个编译选项?

我的理解是,在释放模式我不会有调试信息 所必需的分析器来分析我的代码,而在调试模式下,结果剖析的 不会是相关的。

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

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

回答

4

您肯定应该启用优化功能(编译器选项/ O3)。/Zi是英特尔编译器开关(在Windows上)启用调试信息。

由于优化,由于内联,调试信息可能会丢失一些函数,但是VTune会处理这些问题。

+0

“应付那个”?请不要以为在任何情况下都会发生这种情况。 – JohnTortugo 2014-02-03 19:58:36

3

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

1

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