探索ios底层alloc的几种方式
创建第一个符号断点alloc追踪
通过alloc一系列符号断点 判断出目标实现存在于动态库libobjc里
libobjc源码方式进入NSObect查看
源码分析alloc流程
目标alloc breakpoint处打开汇编 Debug - Debug WorkFlow - Always Show Disassembly
结合汇编分析 跟源码流程不同的是 _alloc_rootAlloc之前执行的是objc_alloc, libobjc源码全局查找相关 fixupMessageRef,
alloc流程修正如下
字节对齐
对象内部结构8字节对齐,isa指针为8字节,基本数据类型最大为8字节
为了计算方便 节省内存,对象之间16字节对齐
字节对齐计算方式
8字节对齐(xx + 7) & ~7
16字节对齐(xx + 15) & ~15