美文网首页
Tagged Pointer

Tagged Pointer

作者: XLsn0w | 来源:发表于2020-02-18 20:55 被阅读0次

    故事开始:

    2013年9月,苹果推出了iPhone5s,与此同时,iPhone5s配备了首个采用64位架构的A7双核处理器,为了节省内存和提高执行效率,苹果提出了Tagged Pointer

    的概念。对于64位程序,引入Tagged Pointer后,相关逻辑能减少一半的内存占用,以及3倍的访问速度提升,100倍的创建、销毁速度提升。

    故事发展

    当8字节可以承载用于表示的数值时,系统就会以Tagged Pointer

    的方式生成指针,如果8字节承载不了时,则又用以前的方式来生成普通的指针。

    Tagged Pointer指针的值不再是地址了,而是真正的值。所以,实际上它不再是一个对象了,它只是一个披着对象皮的普通变量而已。所以,它的内存并不存储在堆中,也不需要malloc和free。

    Tagged Pointer通过在其最后一个bit位设置一个特殊标记,用于将数据直接保存在指针本身中。因为Tagged Pointer并不是真正的对象,我们在使用时需要注意不要直接访问其isa变量。

    相关文章

      网友评论

          本文标题:Tagged Pointer

          本文链接:https://www.haomeiwen.com/subject/obunfhtx.html