Visual Studio 编译优化选项:Debug与Release、禁止优化与O1、O2、Ox优化

Debug与禁止优化

Debug模式是调试模式,会有很多冗余的调试代码,供开发者调试程序使用。

Visual Studio 编译优化选项:Debug与Release、禁止优化与O1、O2、Ox优化
VS是默认使用Debug模式的,我使用的是VS 2017。

在Debug模式下,是默认开启禁止优化的,我们来查看一下

  • 在左侧源文件的main.c处右键单击,选择属性
    Visual Studio 编译优化选项:Debug与Release、禁止优化与O1、O2、Ox优化
  • 找到C/C++下的优化
    Visual Studio 编译优化选项:Debug与Release、禁止优化与O1、O2、Ox优化
    可以看到,默认是禁用优化

Release与不同等级的优化

首先切换到Release模式
Visual Studio 编译优化选项:Debug与Release、禁止优化与O1、O2、Ox优化
再查看一下优化
Visual Studio 编译优化选项:Debug与Release、禁止优化与O1、O2、Ox优化
可以看到,默认优化方式是O2

打开下拉菜单
Visual Studio 编译优化选项:Debug与Release、禁止优化与O1、O2、Ox优化
可以看见有三种优化方式,这个你是可以自己选择的。

Debug与Release的区别

  • Debug是调试模式,仅供开发者调试使用,不能作为产品发布
  • Release是发布模式,生成的可执行文件可以作为产品发布

Release中三种优化模式的区别

发布的产品,不同优化级别有所区别

  • O1:这个模式下,文件大小最小,速度比O2慢
  • O2:这个模式下,速度最快,文件大小比O1大
  • Ox:这个模式下,兼顾文件大小与速度,可能牺牲兼容性

备注:这只是大致的含义,不包含细节,具体细节请阅读专业文档。

使用反汇编对比这几种方式

VS 2017 查看反汇编