优化代码

通过优化可执行文件,你可以在快速的执行速度和较小的代码大小之间实现平衡。 本主题讨论 Visual Studio 提供的一些有助于你优化代码的机制。

语言功能

以下主题描述了 C/C++ 语言中的一些优化功能。

优化杂注和关键字
可以在代码中使用关键字和杂注列表来提高性能。

按类别列出的编译器选项
专门影响执行速度或代码大小的“/O”编译器选项的列表

引用声明符:&&
Rvalue 引用支持移动语义的实现。 如果使用移动语义来实现模板库,那么使用这些模板的应用程序的性能将显著提高。

优化杂注

如果优化的代码段导致错误或速度减慢,则可以使用优化杂注关闭该段的优化。

将代码括在两个杂注之间,如下所示:

#pragma optimize("", off)
// some code here
#pragma optimize("", on)

编程做法

使用优化编译代码时,你可能会注意到其他警告消息。 此行为是预期的,因为某些警告仅与优化的代码相关。 注意到这些警告,就可以避免许多优化问题。

矛盾的是,优化程序的速度可能会导致代码运行速度变慢。 这是因为对速度的某些优化增加了代码大小。 例如,内联函数消除了函数调用的开销。 但内联太多代码可能会使程序太大,以至于虚拟内存页错误的数量增加。 因此,消除函数调用所获得的速度可能会因内存交换而丢失。

以下主题介绍了良好的编程做法。

提高时间关键代码的技巧
使用更好的编码技术可以提高性能。 本主题建议一些编码技术,这些技术有助于你确保代码的时间关键部分让人满意。

优化最佳做法
提供有关如何最佳地优化应用程序的一般准则。

调试优化后的代码

由于优化可能会更改编译器创建的代码,建议你调试应用程序并测量其性能,然后优化代码。

以下主题提供有关如何调试发布版本的信息。

以下主题提供有关如何优化生成、加载和执行代码的信息。

本节内容

优化杂注和关键字
提高编译器吞吐量
为何浮点数可能丢失精度
IEEE 浮点表示形式
提高时间关键代码的技巧
使用没有 () 的函数名不产生代码
优化最佳做法
按配置优化
用于按配置优化的环境变量
PgoAutoSweep
pgomgr
pgosweep
如何:将多个 PGO 配置文件合并成一个配置文件

另请参阅

C/C++ 生成参考