理解内存和OC内存管理规则

内存带宽
内存的速度决定于内存的带宽。

内存带宽计算公式
带宽=总线宽度×总线频率×一个时钟周期内交换的数据包个数。

什么是缓存的命中率?
缓存是为了加速读取速度,所以在缓存里面存储了一些经常要被用到的数据,如果有人想到缓存中取数据而且拿到了数据这个就叫做命中,反之就叫做没命中。
命中率就是命中次数与到缓存中取数据次数的比值。

CPU访问数据的顺序通常是怎样的?
首先是123级缓存,然后内存,接着是硬盘。

CPU和内存之间的速度仍然是有一段差距的,所以缓存解决了速度不匹配的问题。

MRR(Manual Retain Release)是ARC的基础,ARC是编译时插入了内存管理方法,方便管理。

内存问题主要指2方面
1.释放或者覆盖正在使用的数据,这叫内存损坏。
2.内存数据在该释放的时候却没有被释放,这叫内存泄露。

autoreleasepool可以让对象延迟release,就是虽然对象丧失了所有权,但是并没有被立即释放。

引用计数
1.对象创建时引用计数是1。
2.每retain一次,引用计数+1。
3.每release一次,引用计数-1。
4.autorelease释放后,引用计数-1。
5.当引用计数为0的时候,对象自动释放。

copy对引用计数的影响
copy一个对象,会生成一个新对象,这个新对象的引用计数为1。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容