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则是自己写的,但是含义完全一样,这里和语言的意译不同,是真的完全一样。

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

  1. 【Qt】Visual Studio编译Qt项目报Qt Version错误

    00. 目录 文章目录 00. 目录 01. 问题描述 02. 开发环境 03. 问题分析 04. 问题解决 05. 附录 01. 问题描述 使用Visual Studio编译Qt项目时候,报以下错误 ...

  2. 使用 Visual Studio 编译 wget 为库文件

    添加代码与预编译指令与上一篇使用 Visual Studio 编译 wget 为可执行文件一致,区别在于这回建的是静态库工程(编译为动态库过程类似:)) 从wget的main函数开始读下来,发现问题不 ...

  3. lua基础学习(1):使用Visual Studio编译lua和luac

    lua基础学习(1):使用Visual Studio编译lua和luac 0. 背景 本篇博客作为lua基础学习的第一篇博客,主要介绍使用Visual Studio对lua5.0进行编译,目的是获得l ...

  4. visual studio编译错误集(转)

    1.error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 在项目属性-&g ...

  5. 如何解决Visual Studio编译错误,即“处理器体系结构之间的不匹配”?

    本文翻译自:How do I fix the Visual Studio compile error, "mismatch between processor architecture&qu ...

  6. Qt 联合Visual Studio编译打包发布

    1.qt 查找项目中使用到的qt动态链接库: 步骤如下 ①打开项目使用的windeployqt工具(qt自带的工具): ②进入到文件夹所在目录:使用 cd 命令 ③使用命令:windeployqt N ...

  7. visual studio编译linux,在 Visual Studio 中配置 Linux MSBuild C++ 项目

    在 Visual Studio 中配置 Linux MSBuild C++ 项目Configure a Linux MSBuild C++ project in Visual Studio 10/16 ...

  8. Qt的qrc资源文件在Visual studio编译出的Qt程序中不能显示问题解决

    这种情况一般是qrc资源文件没编译或资源文件如图片等不存在导致,在Visual studio项目上,单击鼠标右键,在弹出的右键中选择"添加--->新建筛选器",将新建的文件夹 ...

  9. 使用Visual Studio编译Qt项目出现“E1696 无法打开Qt源文件”的解决方案,亲测可行

    最近别人给我发了一个他的Qt项目,在我电脑Visual Studio上死活运行不成功,报错部分如下图所示:E1696 无法打开源文件 xxx 折腾许久,终于发现了原因orz- 不过在这之前建议你先检查 ...

最新文章

  1. 赢在中国 - 史玉柱经典语录
  2. 神经网络-预测财产损失
  3. 为什么有些xpath绝对路径拿不到数据_我写的Xpath 为什么爬取不到内容
  4. cmake交叉编译android,CMake Android 交叉编译
  5. 【译】On Path Independence
  6. java icmp_java – 为什么没有ICMP指令?
  7. (二)SpringBoot功能
  8. memcache的使用入门C++代码
  9. Python中的from import和import的区别?没有比这回答的更好了
  10. mysql一条sql更新多条数据_执行一条sql语句update多条记录实现思路
  11. C#获得计算机名,当前登录用户名,Ip地址 .
  12. Android音视频从入门到提高---任务列表
  13. windows 安装Rabbit MQ
  14. MySQL的Grant命令[转]
  15. 什么叫小米粒吸尘机器人_mac上的Automator小机器人的有什么妙用?
  16. 791A.Bear and Big Brother
  17. 个人读研期间常用小工具分享
  18. 计算机硬盘和分区是什么关系,电脑硬盘如何分区 电脑硬盘分区注意事项【详解】...
  19. GC 的背景和一般原理--什么是GC,minor gc,major gc,full gc
  20. 怎么制作gif动图,gif动态图怎么制作

热门文章

  1. 以太网 数据包速率计算方法
  2. Linux中exit与_exit的区别
  3. Java 注解学习笔记
  4. AjaxToolKit学习笔记 之 ModalPopupExtender
  5. java 把string转为keyevent_盘点现在Java强大第三方库(字符串操作),程序员都该知道!...
  6. css设置字符长度,在css中设置最大字符长度
  7. java excel处理框架,Java三方—-excel框架之POI的使用一
  8. oracle group by 多类别_python数据关系型图表散点图系列多数据系列
  9. 2017计算机三级哪个好考,快速突破2017年计算机三级考试的几大复习阶段
  10. 计算机原理及应用课程,课程介绍