一,2013年9月,苹果推出了iPhone5s,与此同一时候,iPhone5s配备了首个採用64位架构的A7双核处理器。为了节省内存和提高运行效率,苹果提出了Tagged Pointer的概念。
对于64位程序。引入Tagged Pointer后。相关逻辑能降低一半的内存占用,并有3倍的訪问速度提升,以及100倍的创建。销毁速度提升。
二,当8字节能够承载用于表示的数值时。系统就会以Tagged Pointer的方式生成指针。假设8字节承载不了时,则又用曾经的方式来生成普通的指针。
三,Tagged Pointer通过在其最后一个bit位设置一个特殊标记,用于将数据直接保存在指针本身中。
由于Tagged Pointer并非真正的对象。我们在使用时须要注意不要直接訪问其isa变量。
參考资料:《iOS开发进阶》 -唐巧