對于不同場景缩麸,系統(tǒng)提供的有不同的內(nèi)存管理方案,大致有如下三種:
-TaggedPointer (對于一些小對象缀遍,比如說NSNumber等采用此種方案)
-NONPOINTER_ISA (64位架構(gòu)下iOS應(yīng)用程序)慕匠,實際上32位或40就夠用,存儲了內(nèi)存管理的相關(guān)數(shù)據(jù)內(nèi)容域醇,提高了內(nèi)存利用率
-散列表 (散列表為復(fù)雜的數(shù)據(jù)結(jié)構(gòu)台谊,包含了引用計數(shù)表和弱引用表)
sideTables為什么是好幾張表8*8,SideTables的本質(zhì)是一張Hash表
采用分離鎖實現(xiàn)并發(fā)操作歹苦,解決了自旋鎖“忙等”現(xiàn)象青伤,Spinlock_t適用于輕量訪問
引用計數(shù)表是通過哈希表來實現(xiàn),提高查找效率殴瘦,因為插入和查詢都是通過同一個哈希算法或函數(shù)來實現(xiàn)的