内存管理篇

image.png
image.png
image.png
image.png
image.png

对于不同场景,系统提供的有不同的内存管理方案,大致有如下三种:

-TaggedPointer (对于一些小对象,比如说NSNumber等采用此种方案)
-NONPOINTER_ISA (64位架构下iOS应用程序),实际上32位或40就够用,存储了内存管理的相关数据内容,提高了内存利用率
-散列表 (散列表为复杂的数据结构,包含了引用计数表和弱引用表)

sideTables为什么是好几张表8*8,SideTables的本质是一张Hash表
采用分离锁实现并发操作,解决了自旋锁“忙等”现象,Spinlock_t适用于轻量访问

引用计数表是通过哈希表来实现,提高查找效率,因为插入和查询都是通过同一个哈希算法或函数来实现的

image.png

内存管理方案详解

你可能感兴趣的:(内存管理篇)