iOS tagged pointer

2021-04-04  本文已影响0人  粗暴不简单

为了节省内存和提高执行效率,所以有tagged pointer这玩意儿。tagged pointer可能会应用于NSNumberNSStringNSDateNSIndexPath

出现问题

20190901232757185.jpg

这张图以NSNumber为例,占用空间翻倍了,所以想搞些优化,再看看优化方案


20190902000459522.jpg

这么一搞省了很多空间

分析tagged pointer

tagged pointer占64位
高4位:1位标识+3位类型
中间: 存储对象的值(string用ASCII码表示)
低四位:具体看这个对象是什么类型,比如NSString时为length,NSnumber则为里面数的类型Int为2、long为3、float为4、double为5。

Tagged Pointer.png
上一篇下一篇

猜你喜欢

热点阅读