Debug与禁止优化
Debug模式是调试模式,会有很多冗余的调试代码,供开发者调试程序使用。
VS是默认使用Debug模式的,我使用的是VS 2017。
在Debug模式下,是默认开启禁止优化的,我们来查看一下
- 在左侧源文件的
main.c
处右键单击,选择属性
- 找到C/C++下的优化
可以看到,默认是禁用优化。
Release与不同等级的优化
首先切换到Release模式
再查看一下优化
可以看到,默认优化方式是O2。
打开下拉菜单
可以看见有三种优化方式,这个你是可以自己选择的。
Debug与Release的区别
- Debug是调试模式,仅供开发者调试使用,不能作为产品发布
- Release是发布模式,生成的可执行文件可以作为产品发布
Release中三种优化模式的区别
发布的产品,不同优化级别有所区别
- O1:这个模式下,文件大小最小,速度比O2慢
- O2:这个模式下,速度最快,文件大小比O1大
- Ox:这个模式下,兼顾文件大小与速度,可能牺牲兼容性
备注:这只是大致的含义,不包含细节,具体细节请阅读专业文档。
使用反汇编对比这几种方式
VS 2017 查看反汇编
Debug与Release的区别
如果要将中文翻译成英文,有两种方式
- 直译
- 意译
将高级语言翻译成汇编语言,也有两种方式
- 直译:Debug
- 意译:Release
Debug是直接将你写的高级语言语法进行翻译,基本上是按照你的书写格式进行的,而Release则是自己写的,但是含义完全一样,这里和语言的意译不同,是真的完全一样。