iOS内存管理方案:
由以下三种方案结合
储存NSNumber以及NSDate等类型,以节省内存及提高效率,指针不指向任何地址,指针由标识+值构成
isa指针除了含有内存地址,还含有其他字段
- 第一位的0或1代表是纯地址isa指针还是NONPOINTER_ISA
- 第二位代表是否有关联对象
- 第三位代表是否有C++代码
- 接下来33位代表指向的内存地址
- 接下来弱引用标记
- 接下来dealloc标记等
- SideTables在非嵌入式的64位系统里有64张SideTable表
- 每一张SideTable表主要由三部分组成:自旋锁、引用计数表、弱引用表
- 全局的引用计数表不存在同一张表里,是为了避免资源竞争,解决效率问题
- 引用计数表加入了分离锁概念,将一张表拆分为多个部分,对他们分别加锁,使得可以并发操作,提高执行效率