TaggedPointer 是为64位cpu开发的技术,目的在于节省内存空间、提升性能。
标签指针通过设置它的最低位为1来标识,3位为类标识,剩下60位用于存储数据。用60个二进制位可以表示的值都可以存储在标签指针中,不需要重新申请内存。
标签指针存储的不是一个对象的地址,而是具体的值和标识位。他没有isa指针。
对于字符串:
1.长度介于0到7之间时,用8位编码存储字符串;
2.长度是8或9时,用6位编码存储字符串;
3长度是10或11时,用5位编码存储字符串。
TaggedPointer 是为64位cpu开发的技术,目的在于节省内存空间、提升性能。
标签指针通过设置它的最低位为1来标识,3位为类标识,剩下60位用于存储数据。用60个二进制位可以表示的值都可以存储在标签指针中,不需要重新申请内存。
标签指针存储的不是一个对象的地址,而是具体的值和标识位。他没有isa指针。
对于字符串:
1.长度介于0到7之间时,用8位编码存储字符串;
2.长度是8或9时,用6位编码存储字符串;
3长度是10或11时,用5位编码存储字符串。