美文网首页
GC和ARC的比较

GC和ARC的比较

作者: natewang | 来源:发表于2018-09-25 22:10 被阅读9次

    有两个区别

    性能

    GC 需要一套额外的系统跟踪分配的内存,分析哪些内存需要释放,相对来说就需要更多的计算。这也是为什么对性能敏感的场景不采用 GC 的原因,比如,高性能的服务端程序,资源有限的嵌入式设备(iOS 就没有采用 GC)。

    ARC 由开发者自己来管理资源在什么时候释放,不需要额外的资源,所以性能没有损失。

    延迟

    GC 回收内存时,需要完全暂停当前程序,这会给程序带来难以预测的一个延迟期。如果需要回收的资源很多,这个延迟可能会非常大。

    ARC 在资源引用为 0 时立即释放,没有不可预测的延迟。

    iOS中的arc还做了函数返回值得一些释放。在编译时期完成。

    http://zhang.hu/arc-vs-gc/

    相关文章

      网友评论

          本文标题:GC和ARC的比较

          本文链接:https://www.haomeiwen.com/subject/qkdroftx.html