![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
iOS开发
文章平均质量分 93
yug\t
这个作者很懒,什么都没留下…
展开
-
内存对齐(字节对齐)两三事
目录什么是内存对齐为什么要内存对齐怎么内存对齐示例字节对齐算法ios获取内存大小sizeofclass_getInstanceSizemalloc_size什么是内存对齐先看下面这个结构体struct Test{ int a; char b;};如果没有内存对齐,在64位机器上(以后不作说明,均是64位)字节内存大小应是: 4 + 1 = 5而实际使用sizeof(struct Test)输出却得到的是8为什么要内存对齐1)平台原因(移植原因):不是所有的硬件平台都能访问任原创 2021-01-18 18:11:58 · 896 阅读 · 0 评论 -
iOS 中内存分配与分区及为什么要区分堆栈
关于RAM ROM关于RAM ROM RAM与ROM就是具体的存储空间,统称为存储器RAM(random access memory):运行内存,CPU可以直接访问,读写速度非常快,但是不能掉电存储。它又分为:动态DRAM,速度慢一点,需要定期的刷新(充电),我们常说的内存条就是指它,价格会稍低一点,手机中的运行内存也是指它静态SRAM,速度快,我们常说的一级缓存,二级缓存就是指它,当然价格高一点。ROM(read only memory):存储性内存,可以掉电存储,例如SD卡、Flash转载 2020-11-27 13:26:21 · 263 阅读 · 0 评论 -
底层原理探索(一) - alloc流程
alloc流程探索方式alloc方法调用流程源码(objc-781源码)alloc_objc_rootAlloccallAlloc_objc_rootAllocWithZone_class_createInstanceFromZone(核心)探索方式接入objc源码库直接调试Control+Step into符号断点菜单栏Debug->Debug Workflow->Always Show Disassembly(始终显示汇编代码)alloc方法调用流程alloc - _原创 2020-09-07 17:30:44 · 461 阅读 · 0 评论 -
Runtime是什么
runtimejava和oc 都有运行时吗java和oc 都有运行时吗iOS系统采用的就是Runtime机制。对于C语言,函数的调用在编译的时候会决定调用哪个函数。对于OC函数来说,在编译的时候并不能决定真正调用哪个函数,只有在真正运行的时候才会根据函数的名称找到对应的函数来调用。运行:Objective-C runtime 运行 native code 。Java VM 运行 byte code。垃圾回收:Objective-C runtime 有过短暂的使用 conservative GC。但是原创 2020-08-27 21:52:32 · 234 阅读 · 0 评论