应该为分析设置哪个编译选项?

发布于 2024-07-19 02:58:36 字数 221 浏览 3 评论 0原文

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

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

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

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

I need to profile an application compiled with intel's compiler via VC++.
I'm using VTune to profile my code.

My understanding is that in release mode I won't have the debug information
that is necessary for the profiler to profile my code while in debug mode, the result
of the profiling will not be pertinent.

What should I do ? Is it possible to add debug info in release mode?
How can I set this mode?

If so, will I still benefit from all the optimization (inlining etc.)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

超可爱的懒熊 2024-07-26 02:58:36

您当然应该在启用优化的情况下进行分析(编译器选项 /O3)。 /Zi 是用于启用调试信息的 Intel 编译器开关(在 Windows 上)。

由于优化,某些函数可能会因内联而从调试信息中丢失,但 VTune 会处理这个问题。

You should certainly profile with optimisations enabled (compiler option /O3). /Zi is the Intel compiler switch (on Windows) to enabled debugging information.

Because of the optimisations, some functions may be missing from the debugging information due to inlining, but VTune will cope with that.

迷迭香的记忆 2024-07-26 02:58:36

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

You can generate program database files (PDB) even in release target. Go to project properties, Linker/Debugging and check the option "Generate Program Database File". It is usually something like "$(TargetDir)$(TargetName).pdb". Now, it depends whether VTune knows how to interpret PDB files...

夏天碎花小短裙 2024-07-26 02:58:36

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

Function inlining and interprocess optimizations will make your profile hard to interpret. That is why it is a good idea to profile in both debug and release modes. If release mode only shows function foo using 80% of the program time, you can use the debug profile to see that function bar, which was inlined into foo, is using 60% of foo's time.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文