iphone计算机c是不是清零,iPhone-Objective-C自动引用计数和垃圾回收有什么区别?...

正如我在此处的答案所述,ARC可以提供最佳的手动内存管理和跟踪垃圾收集功能。 它主要消除了开发人员跟踪Objective-C对象上的手动保留,释放和自动释放的需要,但避免了垃圾收集程序的需要,该过程可能耗尽移动设备上的有限资源并在运行中的应用程序中偶尔造成结结 。

通过应用多年来所有Objective-C开发人员必须使用的规则,ARC可以在编译时插入参考计数所需的适当保留和发布。 这使开发人员不必自己进行管理。 由于保留和释放是在编译时插入的,因此不需要收集器过程即可连续清除内存并删除未引用的对象。

跟踪垃圾收集相对于ARC的一个小优势是ARC不会为您处理保留周期,在这种情况下,跟踪垃圾收集可以处理这些保留周期。

关于这个主题的精彩读物来自Apple的Objective-C邮件列表中的该主题,克里斯·拉特纳(Chris Lattner)表示:

与ARC相比,GC的主要优势在于它可以收集保留   周期。 第二个优点是“保留”分配是   “原子的”,因为它们是一个简单的存储。 ARC有几大   与libauto GC相比的优势:

它具有对象的确定性回收(当对对象的最后一个强引用消失时),其中GC有时“释放”对象   稍后”。这定义了GC中可能存在的一类细微错误   由于收集器未触发“   车窗”。

ARC的高水位线通常比GC低得多,因为对象会更快地释放。

libauto提供了一个脆弱的编程模型,您必须注意不要丢失写障碍等。

并非所有的系统框架都是GC干净的,并且随着它们的发展,这些框架偶尔会退化。

ARC不会遭受错误根源的困扰。 libauto保守地扫描堆栈,这意味着看起来像指针的整数可以根   对象图。

ARC没有任何东西可以启动并停止您的应用程序,从而导致UI停顿。 就GC实现而言,libauto相当先进。   之所以走,是因为它不会立即停止每个线程,但是它仍然会   通常最终会停止所有UI线程。

我目前正在将手动内存管理的项目以及那些使用Objective-C垃圾收集的项目都迁移到ARC。 在几个Mac应用程序中使用了垃圾回收一段时间之后,我看到了将这些项目移至ARC的一些显着优势。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值