vs中debug和release版本的区别 vs中debug和release版本的区别

vs中debug和release版本的区别~

vs中的程序有debug和release两个版本。
1、版本不同
Debug通常称为调试版本,通过一系列编译选项的配合,编译的结果通常包含调试信息,而且不做任何优化,以为开发人员提供强大的应用程序调试能力。
而Release通常称为发布版本,是为用户使用的,一般客户不允许在发布版本上进行调试。
2、运行效果不同
debug程序通常比release程序要慢,尤其是处理视频方便release要比debug快很多。
3、算法不同
debug跟release在初始化变量时所做的操作是不同的,debug是将每个字节位都赋成0xcc, 而release的赋值近似于随机。

扩展资料:
二者的编译选项。
Debug 版本:
/Od 关闭优化开关
/D "_DEBUG" 相当于 #define _DEBUG,打开编译调试代码开关(主要针对assert函数)
/ZI 创建 Edit and continue(编辑继续)数据库,这样在调试过程中如果修改了源代码不需重新编译
/GZ 可以帮助捕获内存错误
/Gm 打开最小化重链接开关,减少链接时间
Release 版本:
/MD /ML 或 /MT 使用发布版本的运行时刻函数库
/O1 或 /O2 优化开关,使程序 最小或最快
/D "NDEBUG" 关闭条件编译调试代码开关(即不编译assert函数)
/GF 合并重复的字符串,并将字符串常量放到只读内存,防止被修改
可以理解Debug 和 Release 并没有本质的界限,他们只是一组编译选项的集合,编译器只是按照预定的选项行动。可以修改这些选项,从而得到优化过的调试版本或是带跟踪语句的发布版本。
参考资料来源:百度百科-vs (Visual Studio简称)

vs中的程序有debug和release两个版本,Debug通常称为调试版本,通过一系列编译选项的配合,编译的结果通常包含调试信息,而且不做任何优化,以为开发 人员提供强大的应用程序调试能力。而Release通常称为发布版本,是为用户使用的,一般客户不允许在发布版本上进行调试。所以不保存调试信 息,同时,它往往进行了各种优化,以期达到代码最小和速度最优。为用户的使用提供便利。
debug程序通常比release程序要慢,尤其是处理视频方便release要比debug快很多。在release模式对程序进行调试的时候经常会遇到变量虽然初始化了,但是在查看其值的时候却发现是一个随机的数并不是初始化的值,有时候在对变量进行监视的时候了,会出现找不到变量的情况,原因大致如下:
debug跟release在初始化变量时所做的操作是不同的,debug是将每个字节位都赋成0xcc, 而release的赋值近似于随机。如果你的程序中的某个变量没被初始化就被引用,就很有可能出现异常:用作控制变量将导致流程导向不一致;用作数组下标将会使程序崩溃;更加可能是造成其他变量的不准确而引起其他的错误。所以在声明变量后马上对其初始化一个默认的值是最简单有效的办法,否则项目大了你找都没地方找。代码存在错误在debug方式下可能会忽略而不被察觉到。debug方式下数组越界也大多不会出错,在release中就暴露出来了,这个找起来就比较难了。
只有DEBUG版的程序才能设置断点、单步执行、使用 TRACE/ASSERT等调试输出语句。REALEASE不包含任何调试信息,所以体积小、运行速度快。

vs生成的EXE文件的debug版中含有调试信息,一般比release版的文件长度长很多。

  vs中的程序有debug和release两个版本,Debug通常称为调试版本,通过一系列编译选项的配合,编译的结果通常包含调试信息,而且不做任何优化,以为开发 人员提供强大的应用程序调试能力。而Release通常称为发布版本,是为用户使用的,一般客户不允许在发布版本上进行调试。所以不保存调试信 息,同时,它往往进行了各种优化,以期达到代码最小和速度最优。为用户的使用提供便利。
  debug程序通常比release程序要慢,尤其是处理视频方便release要比debug快很多。
  debug跟release在初始化变量时所做的操作是不同的,debug是将每个字节位都赋成0xcc, 而release的赋值近似于随机。

  代码存在错误在debug方式下可能会忽略而不被察觉到。debug方式下数组越界也大多不会出错,在release中就暴露出来了,这个找起来就比较难了。
  只有DEBUG版的程序才能设置断点、单步执行、使用 TRACE/ASSERT等调试输出语句。REALEASE不包含任何调试信息,所以体积小、运行速度快。

  • VS 解决方案的配置Debug和Release有什么区别
  • 答:Release 称为发布版本,Release模式下不包含调试信息,并对代码进行了优化,使得程序在代码大小和运行速度上都是最优的,\bin\release\目录下只有一个.exe或.dll文件。在项目文件夹下除了bin外,还有个obj目录。编译是分模块...

  • ionic debug 和release 的区别
  • 答:网上查找了些资料,在这 罗列汇总下,做为备忘~一、Debug 和 Release 的区别 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release 称为发布版本,它往往是进行了各种优化,使得程序在...

  • c#debug和release的区别
  • 答:debug版本包括调试信息,所以要比release版本大很多(可能大数百k至数m)。至于是否需要dll支持,主要看你采用的编译选项。如果是基于atl的,则debug和release版本对dll的要求差不多。如果采用的编译选项为使用mfc动态库,则需要...

  • Release版本的本质区别
  • 答:Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。Debug 和 Release 的真正秘密,在于一组编译选项。下面列出了分别针对二者的选项(当然除此之外还有其他一些,...

  • android os release和debug的区别
  • 答:人员提供强大的应用程序调试能力。Release通常称为发布版本,是为用户使用的,一般客户不允许在发布版本上进行调试。所以不保存调试信 息,同时,它往往进行了各种优化,以期达到代码最小和速度最优。为用户的使用提供便利。

  • C++ Debug版本和Release版本运行结果不同,为什么会这样
  • 答:DEBUG模式下变量未赋初值, 编译器会自动给它赋一个绝对值很大和负数, 这些在新手过程中肯定多多少少会遇见的.而Release模式下它只会分配空间, 至于里面的数据, 上个程序在这块内存区写的是什么, 它就是什么....

  • VC 中生成Debug下的程序和Release下的程序有什么区别
  • 答:1.Debug是处于VC程序保护状态,用这种状态生成的代码为伪代码,比如说本来你程序里给变量申请了内存,但之后忘记释放,Debug模式下会自动给你释放,但Release就不行 2.Debug是一种调试状态,必须在安装有VC程序的条件下才能运行...

  • 编译成release版本与debug版本的程序有何执行上的区别
  • 答:单有效的办法,否则项目大了你找都没地方找。代码存在错误在debug方式下可能会忽略而不被察觉到,如debug方式下数组越界也大多不会出错,在 release中就暴露出来了,这个找起来就比较难了:( 还是自己多加注意吧 2. ...

  • vs release和debug的区别
  • 答:当编译和执行一个工程时,可以在Debug和Release两种配置下执行。Debug模式用于调试程序,这是个受保护的运行环境,它将告诉你程序是否有泄露,在运行时也能对特定函数的结果进行检查。然而它生成的可执行文件运行较慢。因此当你...

  • Visual Studio Debug和Release的区别及obj的作用
  • 答:Debug通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度

    为传递更多信息,若有事情请联系
    数码大全网