美文网首页
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