博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
五、何为Debug(调试版)和Release(发行版)
阅读量:5153 次
发布时间:2019-06-13

本文共 514 字,大约阅读时间需要 1 分钟。

      在高级语言出现的早期,很可能根本就没有这个区别。高级语言被编译成可执行的机器代码,一种版本就足够了。

但是人们发现那些可执行的机器码是可以被优化的。比如说已经定义了但没有使用的变量、根本不可能执行到的代码,

完全可以去除。一些跳转来跳转去的复杂逻辑,可以用简单的跳转替代。一些多余指令才达到目的的情况,实际上用

一条指令就足够了。连续不断的优化操作,是最终编译越来越简洁、高效。

 

      但是这又出现了另一个问题。当bug发生时,开发者需要调试。然而经过优化的代码,常常看上去已经和原来的

高级语言逻辑大相径庭(虽然它们之间的功能应该是等价的)。这样以来调试者就往往摸不着头脑。此时就希望编译

器不要优化或者少优化,于是出现所谓“调试版”和“发行版”的区别。调试版基本不优化;发行版则一般都优化到极致。

在windows应用程序编程中 ,一般称为Debug版本和Release版本。但是这个名字并非放之四海而皆准,比如

windows驱动开发中,又一般称为check版本和Free版本。但是意义是一样的。

转载于:https://www.cnblogs.com/tk091/archive/2012/04/26/2471956.html

你可能感兴趣的文章
w3m常用快捷键
查看>>
【Unity 3D】学习笔记四十一:关节
查看>>
原型设计工具
查看>>
windows下的C++ socket服务器(4)
查看>>
css3 2d转换3d转换以及动画的知识点汇总
查看>>
【Java】使用Eclipse进行远程调试,Linux下开启远程调试
查看>>
js对象属性方法
查看>>
对Vue为什么不支持IE8的解释之一
查看>>
利用Git版本控制管理你的项目
查看>>
windows下使用pycharm开发基于ansible api的python程序
查看>>
错误 warning: LF will be replaced by CRLF in README.md.
查看>>
Linux CentOS7 httpd 配置注释
查看>>
Sqlserver2012 评估期已过问题
查看>>
C#调用C++DLL/天地伟业解码器二次开发
查看>>
zend framework 1 连接oracle数据库的写法
查看>>
APUE学习笔记:第九章 进程关系
查看>>
关于 阿里云 的linux 安装 jdk和tomcat 中的问题(解压版的jdk和tomcat)
查看>>
使用localStorage保存搜索记录
查看>>
PHP队列
查看>>
PhpStudy 升级 MySQL 版本到5.7
查看>>