/GENPROFILE/FASTGENPROFILE(生成经分析检测的生成)

通过链接器指定 .pgd 文件的生成,以支持按配置优化 (PGO)。 /GENPROFILE/FASTGENPROFILE 使用不同的默认参数。 使用 /GENPROFILE,以在分析期间以精度(而不是速度和内存使用情况)优先。 使用 /FASTGENPROFILE,以更小的内存使用情况和速度(而不是精度)优先。

语法


profile-argument
 .- .
 .- .
MEMMAX=value
MEMMIN=value
 .- .
 .- .
PGD=filename

参数

任何 profile-argument 参数可以指定为 /GENPROFILE/FASTGENPROFILE。 此处列出的由管道字符 (|) 分隔的参数互斥。 使用逗号字符 (,) 分隔参数。 不要在参数、逗号之间或冒号 (:) 之后加空格。

COUNTER32 | COUNTER64
COUNTER32 指定使用 32 位探针计数器,用 COUNTER64 指定使用 64 位探针计数器。 指定 /GENPROFILE 时,默认值为 COUNTER64。 指定 /FASTGENPROFILE 时,默认值为 COUNTER32

EXACT | NOEXACT
使用 EXACT 为探针指定线程安全互锁增量。 NOEXACT 为探针指定未受保护的增量操作。 默认为 NOEXACT

MEMMAX=valueMEMMIN=value
使用 MEMMAXMEMMIN 指定内存中培训数据的最大和最小预留大小。 该值为要保留的内存量(以字节为单位)。 默认情况下,这些值由内部启发式确定。

PATH | NOPATH
使用 PATH 为函数的每个唯一路径指定一组单独的 PGO 计数器。 使用 NOPATH 为每个函数指定仅一组计数器。 指定 /GENPROFILE 时,默认值为 PATH。 指定 /FASTGENPROFILE 时,默认值为 NOPATH

TRACKEH | NOTRACKEH
指定是否使用额外计数器以便在训练期间引发异常时保持准确计数。 使用 TRACKEH 指定额外计数器,以进行确切计数。 使用 NOTRACKEH 为不使用异常处理或在训练方案中不会遇到异常的代码指定单个计数器。 指定 /GENPROFILE 时,默认值为 TRACKEH。 指定 /FASTGENPROFILE 时,默认值为 NOTRACKEH

PGDfilename=
指定 .pgd 文件的基文件名。 默认情况下,链接器使用带 .pgd 扩展名的基本可执行映像文件名。

注解

/GENPROFILE/FASTGENPROFILE 选项告知链接器生成支持按配置优化 (PGO) 的应用程序训练所需的分析检测文件。 这些选项是 Visual Studio 2015 中的新增选项。 首选这些选项,而不是弃用的 /LTCG:PGINSTRUMENT/PGD/POGOSAFEMODE 选项,以及 PogoSafeModeVCPROFILE_ALLOC_SCALEVCPROFILE_PATH 环境变量。 将应用程序训练生成的分析信息用作输入,以在生成期间执行目标全程序优化。 你还可以设置其他选项来控制各种性能分析功能,以调整应用训练和生成期间的性能。 /GENPROFILE 指定的默认选项提供最准确的结果,尤其是对于大型的复杂多线程应用。 /FASTGENPROFILE 选项使用不同的默认值,以在训练期间实现更低的内存占用量和更快的性能,代价是牺牲准确性。

使用 /FASTGENPROFILE/GENPROFILE 进行生成后,将在你运行已检测应用时捕获分析信息。 指定 /USEPROFILE 链接器选项以执行分析步骤时,将捕获此信息,然后将其用于指导优化的生成步骤。 有关训练应用的方法和所收集数据的详细信息,请参阅按配置优化

在指定 /GENPROFILE/FASTGENPROFILE 时始终指定 /LTCG

在 Visual Studio 开发环境中设置此链接器选项

  1. 打开项目的“属性页” 对话框。 有关详细信息,请参阅在 Visual Studio 中设置 C++ 编译器和生成属性

  2. 选择“配置属性”>“链接器”>“命令行”属性页 。

  3. 在“其他选项”框中输入 /GENPROFILE/FASTGENPROFILE 选项以及参数。 选择 OK 以保存更改。

以编程方式设置此链接器选项

另请参阅

MSVC 链接器参考
MSVC 链接器选项
/LTCG(链接时间代码生成)