在Visual Studio中,生成应用程序的时候有2种模式:Debug和Release。两者之间如何取舍呢?

一、vs中debug和release的区别

1、Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。

2、Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。

3、debug程序通常比release程序要慢,尤其是处理视频方面release要比debug快很多。

4、只有DEBUG版的程序才能设置断点、单步执行、使用 TRACE/ASSERT等调试输出语句。REALEASE不包含任何调试信息

5、在Debug模式和Release模式下调试,Debug模式消耗更多的内存,所以运行较慢

在实际情况中,应该把在Release模式下生成的应用程序部署到服务器上

二、debug和release的区别实例说明

假设有这么简单的一段代码,在主程序中调用方法M1,M1方法调用M2方法,M2方法调用M3方法,M3方法中抛出异常。

 
C# 代码   复制

      class Program

    {
static void Main(string[] args)
{
M1();
Console.ReadKey();
}
static void M1()
{
M2();
}
static void M2()
{
M3();
}
static void M3()
{
throw new Exception("error");
}
}

1、选择"Debug"模式

把断点打在Console.ReadKey();代码行。运行,并通过依次点击"调试→窗口→调用堆栈",显示"调用堆栈"窗口信息,如下:

2、选择"Release"模式,再调试,显示如下

最新文章

  1. Linux编译工具:gcc入门
  2. 10个 jQuery 代码片段,可以帮你快速开发。
  3. 【Java并发编程实战】-----“J.U.C”:Condition
  4. SQL/LINQ/Lamda 写法[转发]
  5. Altium Designer 生成Gerber文件
  6. [转]设置Android手机以使用ARM Streamline进行性能分析(一)
  7. 【CodeForces 618C】Constellation
  8. django session
  9. jquery 源码学习(一)
  10. ORA-1653: unable to extend table SYS.AUD$
  11. JDBC批量操作
  12. jQuery.fn.attr与jQuery.fn.prop
  13. Java的I/O总结
  14. Linux终端类型
  15. zabbix监控windows agent安装配置
  16. Element表格嵌入复选框以及单选框
  17. 如何理解Unity组件化开发模式
  18. phpmyadmin 修改执行时间
  19. MySql 查询银行卡号打码
  20. (转) Ubuntu 更改文件夹及子文件夹权限

热门文章

  1. TestDirector自定义管理:工程配置
  2. QT在windows平台安装使用MInGW编译
  3. 基于Ubuntu系统搭建以太坊go-ethereum源码的开发环境
  4. Qt中translate、tr关系 与中文问题
  5. linux 把ls -R格式化成树状结构
  6. cloudstack ssvm 管理地址不够造成无法启动修复过程
  7. Scrapy实战篇(四)之周杰伦到底唱了啥
  8. 「LOJ6482」LJJ爱数数
  9. 通过wifi上网,桥接模式下virtualBox虚拟机无法连上网的解决办法
  10. leetcode weekly contest 43