第 17 章 Swift内存管理

很多计算机语言中的内存管理常常令人谈之色变。比如,以C++和C为代表的手动内存管理模式,使用起来非常麻烦,经常导致内存泄漏和过度释放等问题。再如,以Java和C#为代表的内存垃圾回收机制(Garbage Collection,GC),程序员不用关心内存释放的问题,这种方式在后台有一个线程,负责检查已经不再使用的对象,然后将其释放。由于后台有一个线程一直运行,因此会严重影响性能。

而Objective-C的内存管理经历过两个阶段:手动引用计数内存管理(Manual Reference Counting,MRC)和自动引用计数内存管理(Automatic Reference Counting,ARC)。MRC就是由程序员自己负责管理对象生命周期,负责对象的创建和销毁。ARC就是程序员不用关心对象释放的问题,编译器在编译的时候在合适的位置插入对象内存释放代码。

Swift在内存管理方面吸收了Objective-C的先进思想,采用了ARC(自动引用计数)内存管理模式。