配置文件引导的优化可以用于简单的特定功能优化吗?

Posted

技术标签:

【中文标题】配置文件引导的优化可以用于简单的特定功能优化吗?【英文标题】:Can profile-guided optimizations be used for simple function-specific optimization? 【发布时间】:2012-06-18 20:41:28 【问题描述】:

我正在使用 VS2010 并进行一些长时间运行的模拟,试图创建高度优化的 C++ 程序。我在 Visual Studio 中阅读了有关 Profile-Guided Optimizations 的内容,并认为它有点难以使用,因为您 (a) 构建二进制文件,(b) 运行测试并收集数据,然后 (c) 重建使用 PGO 的二进制文件。

问题是我已经知道我的瓶颈在哪里;因此,如果有办法告诉 VS 优化哪些功能,我将省去上面漫长的构建过程,并且能够使用常规的。

有人知道这样做的方法吗?或许可以通过手动生成 PGO 文件来告诉 VS 要优化哪些功能?

谢谢!

【问题讨论】:

在 gcc 中有“#pragma hot”或“attribute hot”来标记源代码中的重功能。 【参考方案1】:

您已经知道瓶颈在哪里?

真的吗?

为了好玩,让我们想象一下可能存在一个或多个更大的“瓶颈”,你不知道它们是什么或在哪里。

他们就是这样。他们很狡猾。他们可以隐藏在明显的视野中。

This shows how I find them.

实际上,您可能需要编译器来优化代码。 以我的经验,只有在我调整了我放入的那些没有编译器可以纠正的愚蠢东西之后才会发生这种情况。 如果你认为不会加入愚蠢的东西,那么,证明这一点。 我们都可以,也可以。

【讨论】:

嗯,我同意你关于应该如何工作的观点。话虽如此,如果能够告诉编译器哪些是对性能要求最高的部分,那就太好了,这是我的问题。

以上是关于配置文件引导的优化可以用于简单的特定功能优化吗?的主要内容,如果未能解决你的问题,请参考以下文章

GCC 配置文件引导优化与共享库,无法控制可执行文件

Visual Studio:使用从一个 exe 到不同 dll 的配置文件引导优化的结果?

Apache常用目录详解配置文件详解及优化配置文件权限详解

nginx配置文件的优化

未使用的功能会得到优化吗?

Apache 优化与安全