一,2013年9月,蘋果推出了iphone5s,與此同時,iPhone5s配備了首個采用64位架構的A7雙核處理器,為了節省內存和提高執行效率,蘋果提出了Tagged Pointer的概念。
對于64位程序,引入Tagged Pointer后,相關邏輯能減少一半的內存占用,并有3倍的訪問速度提升,以及100倍的創建,銷毀速度提升。
二,當8字節可以承載用于表示的數值時,系統就會以Tagged Pointer的方式生成指針,如果8字節承載不了時,則又用以前的方式來生成普通的指針。
三,Tagged Pointer通過在其最后一個bit位設置一個特殊標記,用于將數據直接保存在指針本身中。因為Tagged Pointer并不是真正的對象,我們在使用時需要注意不要直接訪問其isa變量。
參考資料:《iOS開發進階》 -唐巧
新聞熱點
疑難解答