当前位置:网站首页>debug和release的区别
debug和release的区别
2022-07-04 22:37:00 【编程小段】
我们在使用Visual Studio编译cpp代码时,会有debug和release两种模式,那么这两种模式有什么区别呢?
先说结论:
一般在开发过程中,我们往往写的代码会有bug,为了便于调试,会选择debug模式进行编译,目的是不让编译器进行编译优化或者优化的少一些;但在开发完需要发布版本的时候,为了使生成的机器代码更快的运行,往往会选择release模式,这样编译器就会尽可能的帮我们进行编译优化。
下面来解释为什么
例如,我们写了一段代码,计算从0加到999的值,如果不使用编译器优化,那么生成的汇编代码如右半部分所示。
int main()
{
int res;
for(int i=0; i<1000; i++)
{
res += i;
}
return res;
}
但是,如果使用了-O3
级别的编译器优化(数字越大,优化级别越高),那么生成的汇编代码就变成了如下所示。因为编译器分析发现这段代码就是返回499500这个值,所以会优化成这样的汇编代码,显然运行速度快很多。但是假如我们需要在for循环内进行debug调试时,编译器会找不到这样的代码,因为汇编代码就没有for循环,所以不会调试。但是没有进行优化的代码就可以在for循环内部进行调试。
边栏推荐
- VIM editor knowledge summary
- Redis入門完整教程:Pipeline
- SHP data making 3dfiles white film
- 9 - class
- Redis入门完整教程:API的理解和使用
- [machine learning] handwritten digit recognition
- vim编辑器知识总结
- Analysis of the self increasing and self decreasing of C language function parameters
- MP进阶操作: 时间操作, sql,querywapper,lambdaQueryWapper(条件构造器)快速筛选 枚举类
- colResizable. JS auto adjust table width plug-in
猜你喜欢
Redis getting started complete tutorial: Geo
Erik baleog and Olaf, advanced area of misc in the attack and defense world
A complete tutorial for getting started with redis: redis shell
Tweenmax emoticon button JS special effect
Attack and defense world misc advanced area can_ has_ stdio?
Three stage operations in the attack and defense drill of the blue team
Redis入門完整教程:Pipeline
Duplicate ADMAS part name
【机器学习】手写数字识别
攻防世界 MISC 進階區 Erik-Baleog-and-Olaf
随机推荐
啃下大骨头——排序(二)
攻防世界 MISC 进阶区 hit-the-core
Sobel filter
企业如何跨越数字化鸿沟?尽在云原生2.0
Redis入门完整教程:Bitmaps
剑指 Offer 68 - I. 二叉搜索树的最近公共祖先
Redis入门完整教程:客户端通信协议
Google collab trample pit
Three stage operations in the attack and defense drill of the blue team
微信小程序显示样式知识点总结
Create Ca and issue certificate through go language
SHP data making 3dfiles white film
JS 3D explosive fragment image switching JS special effect
Attack and defense world misc advanced area can_ has_ stdio?
Attack and defense world misc advanced zone 2017_ Dating_ in_ Singapore
The new version judges the code of PC and mobile terminal, the mobile terminal jumps to the mobile terminal, and the PC jumps to the latest valid code of PC terminal
Qt加法计算器(简单案例)
Common methods in string class
攻防世界 MISC 进阶区 can_has_stdio?
字体设计符号组合多功能微信小程序源码