iOS ARC
2019-04-23 本文已影响5人
A_rcher34
ARC即Automatic Reference Counting,它是Objective-C的内存管理机制。简单来说,就是代码中自动加入了retain/release,原来需要手动添加用来处理内存管理的引用计数的代码可以自动的由编辑器完成了。
ARC的使用时为了解决对象retain和release匹配的问题。之前因为手动释放易造成内存泄露和重复释放的问题将不复存在。
以前需要手动通过retain为对象获取内存,结束时用release释放内存,这种操作被称为MRC(Manual Reference Counting)。
ARC与GC(Garbage Collection垃圾回收)的区别在于:
-
GC在运行时管理内存,可以解决retain cycle,而ARC在编译时管理内存,在运行时没有额外开销。
-
ARC的内存回收是平稳进行的,对象不被使用时会立即被回收。而GC的内存回收是一阵一阵的,回收时需要暂停程序,会有一定的卡顿。
-
GC非常方便,基本上完全不用处理内存管理问题,ARC需要处理循环引用这种内存管理问题
-
GC一类的语言相对来说学习起来更简单