/GL和PGO

你好,我是Lin Xu,是C++编译器的程序管理者。

null

最近 , 我们整理了这个发布周期中测试通过的性能数据。我们密切跟踪所有架构和交换机选项(/O1、/O2、/GL、/PGO)的许多不同基准。我们还跨多个CPU模型跟踪这些问题(是的,这是一个很大的矩阵。请查看QA团队即将发布的博客文章以了解更多信息。)

我们对这个版本在代码质量方面所做的改进感到非常兴奋(读一下Ten最近的帖子 在这里 )当我看到这些数字时,有一件事突然出现在我眼前:要真正利用这些改进,应用程序需要使用 /德国劳埃德船级社 ,和 PGO公司 ,如果可能的话。

如果你不熟悉 PGO公司 ,你可以在 P 罗菲勒 G 导向的 O 优化 在这里 .

我总结了一些比较VS2010 Beta2和VS2008 SP1.0的数据。下面是x86和x64上各种交换机的整数基准性能比较:

图片[1]-/GL和PGO-yiteyi-C++库

这些特定的图形基于一个类似于speccpu2006的基准测试套件,但是我们的基准测试也包括真实世界的代码。我们构建并度量许多Microsoft产品的性能,包括SQL、Windows和Office。

假设您当前使用 /氧气 在VS2008中切换。如果移动到VS2010,您可能会在x64上看到:

· 如果打开,代码速度将提高10% /德国劳埃德船级社 ,

· 如果打开,代码速度将提高16% /GL和PGO

在x86上,

· 如果打开,代码速度将提高7% /德国劳埃德船级社,

· 打开后代码速度提高13% /GL和PGO。

现在,在最近的几个版本中,一个新的VC++项目 /德国劳埃德船级社 发布版本。但是,升级项目的设置不会更改。因此,无论您使用的是visualstudio构建系统还是您自己的自定义构建系统,请继续检查您是否指定了 /德国劳埃德船级社 为您的发布版本!

我的另一个建议是 PGO公司 . 这样做需要更大的投资(它需要你找出场景并创建培训数据),但它可以提高应用程序的性能 /德国劳埃德船级社 . PGO最适用于中型或大型应用程序。 小型应用程序可能从中看不到什么好处 PGO公司 ,具体取决于应用程序的工作负载。

我们最近创建了训练数据并打开了 PGO公司 对于VisualStudio 2010中C++智能引擎的一部分,在一些场景中看到更好的性能。当我们打开 PGO公司 对于编译器,我们测量了大约10%的编译器吞吐量加速。同样,您可以学习如何打开 PGO公司 在劳伦斯的博客文章中你自己的构建 在这里 .

/德国劳埃德船级社 不应该显著增加构建时间,但是请注意 /德国劳埃德船级社 与“编辑并继续”不兼容( /子 )和增量构建(链接器选项/ 增量 ). 你可以阅读一些关于 /德国劳埃德船级社 在之前的另一篇博文中 在这里 .

正如劳伦斯在他的 博客文章 ,与 PGO公司 您的应用程序将构建两次—一次用于插入指令的构建,另一次用于最终优化的构建。这意味着构建时间增加得更显著,但正如我在上面提到的,性能的提高也更显著。

因此,如果您的应用程序是CPU受限的,我希望这些数字能够说服您再次查看您的发布版本设置并打开它 /德国劳埃德船级社 PGO公司 !

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享