【问题标题】:Which compilation option should be set for profiling?应该为分析设置哪个编译选项?
【发布时间】:2010-10-23 21:00:24
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: c++ visual-studio profiling intel-vtune


    【解决方案1】:

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

    由于优化,调试信息中可能会由于内联而丢失某些功能,但 VTune 会处理。

    【讨论】:

    • “应付那个”?请不要假设在任何情况下都会发生这种情况。
    • @JohnTortugo:不太清楚你的意思——还有什么其他选择?您需要优化以便分析具有代表性,但这意味着函数将被内联并且没有任何关联的调试信息。解决这个问题是调试器和分析器的工作。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-08
        • 1970-01-01
        • 1970-01-01
        • 2012-10-27
        • 2011-06-30
        相关资源
        最近更新 更多