用于Visual C++应用程序的*性能优化工具*

介绍

null

作为VS2013预览版的一部分 性能和诊断中心 “被介绍了。这个 轮廓引导优化 (PGO公司) 工具 是一个新的 性能优化工具 它与 性能和诊断中心 ‘. 这个 工具 不是Visual Studio 2013现成安装的一部分,但可以从 VS画廊 ( 下载 在这里 ) . 如果您想提高应用程序的运行时性能,那么这个工具是为您准备的。 此工具旨在通过提供 引导式体验 通过PGO工艺的各个阶段。除此之外 PGO工具 还将提供当前仅在从命令行使用PGO时公开的功能。这包括能够训练不相交的训练集和使用PGO实用程序,如’ pgomgr公司 ‘查看和 分析培训质量 为PGO的训练阶段执行。

使用此工具的最终目标是收集表示以性能为中心的场景的培训数据。当插件将生成的构建配置更改为始终使用PGO构建时,此训练数据将用于优化应用程序的未来构建。

请注意,使用此工具,现在您可以 为Windows应用商店升级现代或沉浸式应用程序。这个工具是 只有 可用于 本地的 应用程序和当前已为x86/x64平台启用。 如前所述,此工具目前不是VisualStudio开箱即用安装的一部分。这是一个原型,我们真的希望如果你能给我们提供反馈,帮助我们进入下一阶段。请告诉我们你对此有何看法?

演练

该工具可作为 性能和诊断中心 ‘只要在解决方案资源管理器中选择了具有本机启动项目的解决方案。要启动工具,请选择’ 轮廓引导优化 ‘并单击’ 起点 ‘如下图1所示:

图片[1]-用于Visual C++应用程序的*性能优化工具*-yiteyi-C++库

图1:“性能和诊断”中心中的“配置文件引导优化”工具。

插件的“开始”屏幕提供了应用程序升级过程的概述。“分析目标”总是指向解决方案中的“启动项目”。这三个简单的步骤是“检测”、“培训”和“分析”。

单击“开始”开始 “检测”步骤 对于图2所示的工具。

图片[2]-用于Visual C++应用程序的*性能优化工具*-yiteyi-C++库

图2:轮廓引导优化(PGO)的检测步骤

‘培训最初已启用’ 选项为用户提供了一个选择,将应用程序的启动阶段作为培训练习的一部分。换句话说,如果取消选择此选项,则在显式启用培训之前,不会为应用程序的启动或任何其他阶段收集任何培训数据。

单击“Instrument”将启动应用程序的插入指令的构建(图3)。对于插入指令的构建,应用程序是使用一组特殊的构建标志构建的。在此构建过程中,编译器将探测指令插入到生成的代码中,这些代码用于记录训练阶段的训练数据。一旦应用程序的检测构建完成,应用程序将自动启动。

如果您看到弹出任何警告,请花时间解决它们,然后再次单击“开始”以开始插件的插入阶段。

图片[3]-用于Visual C++应用程序的*性能优化工具*-yiteyi-C++库

图3:检测构建已启动

“开始/暂停”训练链接用于控制训练数据的收集(图4)。您将从PGO获得的性能增益与您对应用程序的培训程度成正比。如果您不确定如何训练应用程序或什么是一组好的训练场景,请尝试使用性能测试套件作为训练场景集。每个“开始/暂停训练”序列基本上都标记了记录训练数据的时间段(图4)。记录的训练数据转储到PGO数据文件(.pgd),在PGO生命周期的分析阶段一起完成。培训阶段完成后,单击“分析”开始分析收集的培训数据。

图片[4]-用于Visual C++应用程序的*性能优化工具*-yiteyi-C++库

图4:轮廓引导优化的训练阶段

分析 在PGO阶段,收集到的训练数据被合并在一起,该表只显示每个函数中花费的时间量(动态指令计数(%))以及其他信息,如函数调用计数(图5)。此表提供的数据与探查器报告的数据类似,应用于验证以性能为中心的代码部分是否包含在培训步骤中。

编译器使用收集的这些训练数据来优化应用程序性能。使用PGO,训练过程中热门的(即频繁执行的)功能将针对速度进行优化,其余功能将针对大小进行优化。因此,使用PGO生成的二进制文件更小更快。

图片[5]-用于Visual C++应用程序的*性能优化工具*-yiteyi-C++库

图5:轮廓引导优化的分析阶段

查看收集的培训数据后,单击 ‘保存更改’ 使将来的应用程序构建能够使用PGO进行构建。但是,如果根据您的检查,表中似乎缺少以性能为中心的关键函数,或者与非常低的动态指令计数(%)相关,请单击 ‘重做培训’ 重做应用程序的培训阶段。请注意,单击 ‘重做培训’ 按钮重置收集的训练数据。

由于点击 ‘保存更改’ 该工具将收集的训练数据转储到PGO数据文件(.pgd)中。PGO数据文件被写入一个名为“PGO Training data”的新文件夹中,该文件夹创建于“startup project”标题下,如下面的图6所示。此数据文件由编译器用于启用PGO编译。

图片[6]-用于Visual C++应用程序的*性能优化工具*-yiteyi-C++库

图6:概要文件引导优化数据文件(.pgd)

此时,已为所选的生成配置启用“配置文件引导优化”,并可由应用程序重建启动。在应用程序重建时,请注意BuildOutput窗口中额外的PGO相关诊断信息(图7)。

图片[7]-用于Visual C++应用程序的*性能优化工具*-yiteyi-C++库

图7:构建输出中的概要文件引导优化诊断

当您对应用程序代码库进行重大的代码更改时,有必要重新训练应用程序以重新生成新的PGO训练数据文件。建议重新培训您的应用程序时 突出显示 PGO诊断信息低于“80%%”。

要查看PGO的性能优势,请使用应用程序的PGO优化构建重新执行您的培训场景,以注意性能优势。

总结

我们真的很期待从您的反馈w.r.t这个工具,所以请给我们留下一个关于你的想法,一旦你有机会玩它的笔记。理想情况下,我们希望在未来的visualstudio版本中制作产品的这一部分。

有关PGO的更多信息,请参阅我之前的一篇文章 博客 . 有关此工具的详细信息,请访问 MSDN公司 . 此外,如果您想让我们在博客上介绍一些其他编译器技术或工具,请告诉我们,我们一直有兴趣从您的反馈中学习。

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