ARC相对MRC的优点

来源:互联网 发布:js window.open 编辑:程序博客网 时间:2024/06/04 19:50

原文地址:http://www.cocoachina.com/newbie/basic/2011/1212/3701.html


大家是否知道从旧时代的RC到ARC机制到底意味着什么呢? 为什么ARC从开发速度,到执行速度和稳定性都要优于rc?

开发速度不言而喻,你少写很多release代码,甚至很少去操心这部分。

执行速度呢?这个还要从runtime说起,还记得我在第2点说得一句话么:“Runtime is everything between your each function call.”  

RC是一个古老的内存管理哲学,谁分配谁释放。通过counting来计数到底该资源有几个使用者。道理很简单,但是往往简单的东西人却会犯错。从来没有一个程序员可以充满信心的说,我写得代码从来没有过内存泄露。这样来看,我们就更需要让程序可以自己处理这个管理机制,这就需要把这个机制放到runtime里。

所以RC->ARC就是把内存管理部分从普通开发者的函数中移到了函数外的runtime中。因为runtime的开发原型简单,逻辑层次更高,所以做这个开发和管理出错的概率更小。实际上编译器开发人员对这部分经过无数次测试,所以可以说用arc几乎不会出错。另外由于编译的额外优化,使得这个部分比程序员自己写得代码要快速很多。而且对于一些通用的开发模式,例如autorelease对象,arc有更优秀的算法保证autoreleasepool里的对象更少。

0 0
原创粉丝点击