zoukankan      html  css  js  c++  java
  • OC的内存管理机制

    总的来说OC有三种内存管理机制,下面将分别对这三种机制做简要的概述。

    1、手动引用计数(Mannul Reference Counting-MRC)

      mannul:用手的,手工的.  引用计数:retaincount

      从英文字面上理解就是在这种机制下,内存需要程序员去手动管理,即通过在代码中调用-retain、-release或者-autorelease去增加和减小对象的引用计数,当引用计数为0时,对象会自动调用-dealloc方法释放所占用的内存。

    2、垃圾回收机制(Garbage Collection-GC)

      garbage:垃圾,废物.  collection:收集,收藏.

      英文还是很形象生动的吧,所谓垃圾回收机制就是系统对不再使用的对象进行收集,并在间隔一定时间后将它们集体释放。看到collection就很自然的想到这样会占用一定的系统资源,这也是它没有被部署到iOS平台的原因。而OS X也只是在一段时间内使用过它,在ARC成熟后便被废弃了。

    3、自动引用计数(Automatic Reference Counting-ARC)

      automatic:自动的.

      这个automatic体现在什么地方呢?它和GC有什么优点使它能取代GC呢?

      automatic所体现的地方在于,它和GC有着明显的不同,因为它是通过编译器实现的,即ARC程序在编译阶段编译器会根据需要自动的添加-retain和-release的调用,无需我们程序员插手。是不是很像MRC?

      每当一个对象被引用时,它的引用计数就会进行+1操作,当其被release时,引用计数就会相应的-1,当减少到0时,对象会自动调用-dealloc函数进行释放,这和MRC如出一辙,因此不需要系统对其进行管理不需要的对象也能够得到及时的释放,从而也减少了内存压力。所以其取代垃圾回收机制也是理所当然的。

  • 相关阅读:
    科技公司网站
    jquery 设置元素内容html(),text(),val()
    jquery 相关class属性的操作
    jquery attr()和prop()方法的使用
    检测移动设备横竖屏
    设定程序在某个特定时刻执行
    js设计模式-建造者模式
    css自定义字体完美解决方案example
    css透明属性
    css3多列example
  • 原文地址:https://www.cnblogs.com/mmhc/p/5027914.html
Copyright © 2011-2022 走看看