iOS之深入解析内存管理散列表SideTables和弱引用表weak_table的底层原理
生活随笔
收集整理的這篇文章主要介紹了
iOS之深入解析内存管理散列表SideTables和弱引用表weak_table的底层原理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、SideTables 和 weak_table 的關系
- 在 runtime 中,有四個數據結構非常重要,分別是 SideTables,SideTable,weak_table_t 和 weak_entry_t。它們和對象的引用計數以及 weak 引用相關。
- 在 runtime 內存空間中,SideTables 是一個 64 個元素長度 8 個元素長度的 hash 數組,里面存儲了 SideTable。SideTables 的 hash 鍵值就是一個對象 obj 的 address。
- 因此,一個 obj 對應了一個 SideTable,但是一個 SideTable,會對應多個obj,這是因為 SideTable 的數量只有 64 個,所以會有很多 obj 共用同一個SideTable。
- 在一個 SideTable 中,又有兩個成員,分別是:
- SideTable 的兩個成員:refcents 是一個 hash map,其 key 是 obj 的地址,而 value,則是 obj 對象的引用計數。
- weak_table 則存
總結
以上是生活随笔為你收集整理的iOS之深入解析内存管理散列表SideTables和弱引用表weak_table的底层原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HarmonyOS之生物特征识别的功能和
- 下一篇: iOS之深入解析通知NSNotifica