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

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

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

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

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

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

 

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

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

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

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

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

转载地址:http://ulmyo.baihongyu.com/

你可能感兴趣的文章
sql数据库java连接sqlserver2005数据库
查看>>
clientapivc api TCP&UDP—helloworld
查看>>
下划线的学习1
查看>>
在struts2.3.4.1中使用注解、反射、拦截器实现基于方法的权限控制
查看>>
单例模式 - 程序实现(Java)
查看>>
如何隐藏Cognos Viewer
查看>>
响应式网页设计:rem、em设置网页字体大小自适应
查看>>
ImageView的属性android:scaleType
查看>>
商业智能给数据获取带来的局部效益案例
查看>>
巧妙运用二进制验证权限
查看>>
C#中的WebBrowser控件的使用
查看>>
(转)<Unity3D>Unity3D在android下调试
查看>>
configure JAAS for jboss 7.1 and mysql--reference
查看>>
04. 字符串合并与拆分写法小结
查看>>
使用goldengate交付指定时间前的数据
查看>>
OpenStack 部署运维实战
查看>>
Android -- 触摸Area对焦区域(更新)
查看>>
uva 12730(期望经典)
查看>>
c# 工具
查看>>
日期转化为周次
查看>>