美文网首页
4-2 内存管理方案

4-2 内存管理方案

作者: Rumbles | 来源:发表于2019-04-11 17:30 被阅读0次

[引用计数相关] https://juejin.im/post/5b5577cae51d45191853426f
[引用计数原理]http://www.cocoachina.com/ios/20151210/14636.html
iOS系统是怎样对内存进行管理的?以及原理
引用计数? 原理如下 wishing看上面的引用计数原理就够了
1.TaggedPointer 是否支持 1表示支持就是nonpointer_isa
2.NONPOINTER_ISA has_sidetable_rc 对象引用计数过大 就是要使用散列表的方式
3.散列表

NONPOINTER_ISA
32位占用32个0也就是4个字节
64位占用64个0也就是8个字节

2.第一个字节indexed如何是1那么表示这是一个指针型isa 表示的是当前的对象的类对象的地址
如果是1 那么存的不仅是对象的类对象的地址还有一些内存管理方面的数据

占位数 名称 意义
1 bit indexed 0 is raw isa, 1 is non-pointer isa.
1 bit has_assoc 对象拥有或者曾经拥有一个相关的参考。对象没有关联的引用可以释放的更快。
1 bit has_cxx_dtor 对象有一个 C++或者 ARC 的析构函数。没有析构函数的对象可以被释放的更快
33 bit shiftcls 类指针的非零位 Class pointer's non-zero bits.
9 bit magic 等于 0xd2。被调试器用来从没初始化的东西中区分真是的对象
1 bit weakly_referenced 弱引用 对象正被或者曾经被一个自动释放的弱引用变量指向。没有被弱引用的对象能够释放的更快。
1 bit deallocating 对象是否正在被释放
1 bit has_sidetable_rc 对象引用计数过大 需要这个字节保存引用计数的相关内容 散列表
19 bit extra_rc 对象的引用计数是extra_rc 值+1(举例,如果 extra_rc 是5,那么对象的真是引用计数是6)额外的引用计数

散列表的方案是sideTables 是由多个sideTable组合而成的
为什么用多张呢 因为用一张会导致效率问题
使用分离所 可以吧表分开成 多张表 当a,b在不同的表里面时我们就可以进行并发操作
提高效率

怎样实现快速分流?
sideTable本质是一张hash表

相关文章

  • 4-2 内存管理方案

    [引用计数相关] https://juejin.im/post/5b5577cae51d45191853426f[...

  • iOS 内存管理

    一.内存布局以及结构 1.1内存布局 1.2内存管理方案 内存管理方案有3种:TaggedPointer (小对象...

  • 4-1 内存管理

    1.内存布局 2.iOS内存管理方案 [isa指针保存了内存管理的信息] 2.iOS内存管理方案 [isa指针...

  • 2021-10-27 内存管理--自动释放池(AutoRelea

    1.内存管理 内存布局 内存管理方案(更好的简述内存管理方案相关的问题,就要明白他们的数据结构) 数据结构 ARC...

  • 内存管理解析

    前言 今天我们大致分析下内存管理相关的底层原理等知识点,分为包括内存布局和内存管理方案两大块,其中内存管理方案会重...

  • OC内存管理

    一、内存布局 二、内存管理方案 2.1、方案介绍 TaggedPointer比如NSNumber类型 NONPOI...

  • iOS开发 内存管理

    一、内存五大区 二、内存管理方案 iOS操作系统是针对不同场景,会提供不同的内存管理方案, TaggedPoint...

  • iOS-内存管理-布局与方案

    一、内存布局 二、内存管理方案 1. TaggedPointer 对于小对象比如NSNumber,采用这种方案。 ...

  • iOS备战之内存管理(二)

    内存管理方案 iOS操作系统是怎么管理内存的,本次就来详细的分析不同情况下使用的不同方案。 简要的说有三种内存管理...

  • OC-底层原理 33:内存管理(一)TaggedPointer/

    本文主要是分析内存管理中的内存管理方案,以及retain、retainCount、release、dealloc的...

网友评论

      本文标题:4-2 内存管理方案

      本文链接:https://www.haomeiwen.com/subject/jfhwmftx.html