“Checked”和“Free”是怎么来的?

Windows操作系统中,Checked Build(调试版)和Free Build(发布版)的区分源于开发阶段的不同设置,主要涉及编译优化、调试痕迹、断言和健全检查。Checked Build启用了所有检查,而Free Build在保持优化的同时,去掉了调试痕迹和断言,但包含健全检查。随着项目发展,由于Free Build满足性能要求,最终被选为发布版本。
导读:

  对微软技术比较了解的可能知道Windows的同一个版本号的build经常被分为chk和fre,chk表示Checked,fre表示Free。主要的区别在于,checked build有traces和asserts,而free build没有。

  但是,checked和free是怎么出现的呢?因为传统的用词一般是debug和retail(或者release)。

  当Windows NT还处在开发阶段的时候,开发组的人还在用“debug”和“retail”。Debug和Retail的不同在于编译时的选项:

  Compiler Optimization:开、关

  Debug Traces:开、关

  Assertions:开、关

  Sanity checks:开、关

  传统来说,Debug是“Optimization:关,Traces:开,Assertions:开”,Retail是“O:开,T:关,A:关”。后来,NT团队加入了Sanity checks的选项。本来,Sanity check在内部版本中有,在发布的时候会移除掉。

  于是,NT的团队就有了“O:开,T:开,A:开,S:开”,“O:开,T:关,A:关,S:开”和“O:开,T:关,A:关,S:关”三种Build。

  最后一种是传统的“retail” build。那么,前两种叫什么build呢?第一种Optimization是开着的,所以不是传统的“debug”,后一种Sanity check是开着的,所以不是传统的“retail”。

  为了区别这些build的不同。讨论以后,NT团队决定用“checked”表示“O:开,T:开,A:开,S:开”,“Free”表示“O:开,T:关,A:关,S:开”。Checked是因为所以的check都打开了,Free是因为“check free”。

  后来,随着NT 3.1项目进展,团队认识到:

  他们其实根本就不会去测试“retail” build,

  他们对free build进行了性能测试,结果发现它能够满足性能要求。

  于是,团队把free build作为最终版本发布。



本文转自

http://xmduan.spaces.live.com/blog/cns!E58A3F4B193D76DC!581.entry
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值