内存管理方案
- taggedPointer :存储小对象如NSNumber。深入理解Tagged Pointer
- NONPOINTER_ISA(非指针型的isa):在64位架构下,isa指针是占64比特位的,实际上只有30多位就已经够用了,为了提高利用率,剩余的比特位存储了内存管理的相关数据内容。
- 散列表:复杂的数据结构,包括了引用计数表和弱引用表
通过SideTables()结构来实现的,SideTables()结构下,有很多SideTable的数据结构。
而sideTable当中包含了自旋锁,引用计数表,弱引用表。
SideTables()实际上是一个哈希表,通过对象的地址来计算该对象的引用计数在哪个sideTable中。
自旋锁:
- 自旋锁是“忙等”的锁。
- 适用于轻量访问。
引用计数表和弱引用表实际是一个哈希表,来提高查找效率。
网友评论