美文网首页
iOS 内存管理之Tagged pointer

iOS 内存管理之Tagged pointer

作者: 大白菜s | 来源:发表于2020-08-17 14:37 被阅读0次

从64位开始,iOS引入了TaggedPointer技术,用于优化NSNumber、NSDate、NSString等小对象的存储

1.将值直接存储到变量指针中,不必开辟堆空间。
2.实例对象方法取值也会调用objc_msgSend,在方法中判断,如果是Tagged Pointer对象直接取值,如果不是根据isa取值

iOS系统 TaggedPointer对象地址最高位为1
TaggedPointer对象地址 & mask 0x1000 0000 0000 0000 取值等于0x1000 0000 0000 0000
Mac系统 TaggedPointer对象地址最低位为1
TaggedPointer对象地址 & mask 0x0000 0000 0000 0001 取值等于0x0000 0000 0000 0001

相关文章

网友评论

      本文标题:iOS 内存管理之Tagged pointer

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