2020年11月30日

006:cache_t-(buckets[sel imp]、mask、flag、occupied)-【cache_insert(散列表,3/4两倍扩容)】

摘要: 问题 1:缓存的流程 msg_send-->>cache_fill-->>cache_insert -->>_occupied+1-->> -->>reallocate-->>cache_collect_free-->>_garbage_make_room -->>扩容-->>(散列表)存储sel和 阅读全文

posted @ 2020-11-30 21:53 风zk 阅读(110) 评论(0) 推荐(0) 编辑

005:类原理分析下

摘要: 问题 目录 1:class_ro_t-->>class_rw_t-->>class_rw_ext_t 2:iskindOfClass & isMemberOfClass 的理解 3:class_getClassMethod源码 预备 正文 1:class_ro_t-->>class_rw_t-->> 阅读全文

posted @ 2020-11-30 18:44 风zk 阅读(136) 评论(0) 推荐(0) 编辑

004:类原理分析(上):类(isa、superclass、cache、bits[class_ro_t class_rw_t class_rw_ext_t])

摘要: 问题 1:为什么元类是唯一的? 2: isa走位图 2: class_rw_o和class_rw_t的区别 目录 1:isa走位图 2:元类 3:isa走位图 4:OC对象的本质 5:获取属性列表 6:方法列表 7:获取成员变量 8:类方法的存储 9:类的信息是如何存储的 10:class_ro_t 阅读全文

posted @ 2020-11-30 16:46 风zk 阅读(177) 评论(0) 推荐(0) 编辑

003:对象原理下-isa指针(isa[联合体位域]->class、bits->shiftcls)

摘要: 问题 1:_objc_initInstanceIsa的流程三部曲 2:isa为什么是8字节 3:isa流程图 目录 1:oc对象本质 2:探索objc_setProperty原理 3:结构体和联合体位域 4:源码查找isa指针 5:isa指针位域具体信息 6:isa关联地址和类的过程 7:关联的验证 阅读全文

posted @ 2020-11-30 11:10 风zk 阅读(376) 评论(1) 推荐(0) 编辑

002:对象原理中-内存对齐,结构体内存对齐: sizeof class_getInstanceSize malloc_size

摘要: 问题 1:为什么要内存对齐 2:为什么要内存重排 3:内存计算 目录 1:为什么要内存对齐 2:内存对齐规则 3:单个结构体内存对齐 4:结构体嵌套结构体 5: 内存优化 6:属性重排 7:instanceSize方法的底层实现 8:8字节和16字节对齐 预备知识 1:lldb调试指令 po 打印信 阅读全文

posted @ 2020-11-30 00:28 风zk 阅读(220) 评论(0) 推荐(0) 编辑

导航