1、简要介绍iOS 内存机制

Objec-C 采用的是引用计数原理,当一个指针指向一个对象时,对象的引用计数+1;当一个指针不再指向这个对象时,引用计数-1;当引用计数为0时,这个对象就会被销毁,回收内存。

引用计数虽然简单,但是在使用的过程中,手写大量的代码操作引用计数不仅仅是繁琐,而且容易遗漏。2011年WWDC 开发者大会上,苹果引用了ARC(自动引用计数)技术。

目前objec-c 有两种引用技术方式:ARC和MRC。

ARC的实现原理大概为:当我们在源码编译时,编译器会分析源码当中每个对象的生命周期,然后基于这些对象的生命周期,来添加相应的引用计数操作代码。所以,ARC是工作在编译期的解决方案,和MRC对比,其优势为:

1、在编译之后,ARC和MRC代码没有什么差别,二者可以在源码当中共存。可以通过添加编译参数 -fno-objc-arc 来关闭ARC特性;

2、相对于垃圾回收机制,ARC并不会带来运行时的额外开销,所以在运行效率上并不会有影响。而且,由于ARC机制会深入分析每个对象的生命周期,所以ARC能够做到比手动管理引用计数更加的高效。比如说某个对象在刚开始时引用计数会+1,紧接着其引用计数-1,那么ARC机制就会 在编译时 将这两种操作优化掉

你可能感兴趣的:(1、简要介绍iOS 内存机制)