类的结构里为什么会有rw、ro和rwe?

  1. ro 属于clean memory,在编译期即确定的内存空间,只读,加载后不会改变内容的空间.
  2. rw属于dirty memory, rw是运行时结构,可读可写,可以向类中添加属性、方法等,在运行时会改变的内存.
  3. rwe相当于类的额外信息,因为在实际使用过程中,只有很少的类会真正的改变他们的内容,所以为了避免资源的消耗就有了rwe;
  4. 运行时,如果需要动态向类中添加方法协议等,会创建rwe,并将ro的数据有限attache到rwe中,在读取时会优先返回rwe的数据,如果rwe没有被初始化,则返回ro的数据.
  • rw中包括ro和rwe,其中rw是dirty memory,ro是clean memory,为了让dirty memory占用更少的空间,把rw中可变的部分抽取出来为rwe;
  • clean memory越多越好,dirty memory越少越好,因为iOS系统底层虚内存机制的原因,内存不足时会把一部分内存回收掉,后面需要再次使用时从硬盘中加载出来:即swap机制,clean memory是可以从硬盘中重新加载的内存,iOS 中的MachO文件动态库都属于此类型;dirty memory是运行时产生的数据,这部分数据不能从硬盘中重新加载,所以必须一直占据内存,当系统物理内存紧张的时候,会回收掉clean memory内存,如果dirty memory过大则直接会被回收掉;所以clean memory越多越好,dirty memory越少越好;苹果对rw、ro、rwe进行这么细致的划分都是为了更好更细致的区别clean memory和dirty memory

类的结构里为什么会有rw、ro以及rwe相关推荐

  1. java流类图结构_java I/O 流总结

    一.java 流操作有关的类和接口: 类                                                                          说明 Fil ...

  2. 反射应用--取得类的结构

    1,目标: 通过反射取得类的全部接口, 取得类所继承的父类 取得类全部构造方法 通过反射取得类的全部方法 通过反射取得一个类的全部属性. 具体类型 反射的深入-取得类的结构 要想通过反射取得类的结构, ...

  3. java 常用流_Java流类图结构: 流的概念和作用流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数...

    Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观 ...

  4. Swift基础语法: 25 - Swift的类和结构体

    在我们实际开发的过程中, 类和结构体是人们创建代码时所用的一种通用且灵活构造体, 为了在类和结构体中实现各种功能,我们必须要严格按照对于常量,变量以及函数所规定的语法规则来定义属性和添加方法. 但是在 ...

  5. Swift —— 类与结构体

    Swift -- 类与结构体 1. 初识类与结构体 1.1 异同点 1.2 类(引用类型) 1.3 结构体 (值类型) 1.4 类和结构体的内存位置 1.4.1 结构体的内存位置 1.4.2 类的内存 ...

  6. java中的类跟结构体_C#中的结构体与类的区别

    经常听到有朋友在讨论C#中的结构与类有什么区别.正好这几日闲来无事,自己总结一下,希望大家指点. 1. 首先是语法定义上的区别啦,这个就不用多说了.定义类使用关键字class 定义结构使用关键字str ...

  7. Python Json数据结构 打印json结构里含有$符号value的值 并且去重里面value相同的值 77hub 北京企业科技 企企 测试工程师面试 简单代码算法题

    目录 前言 一.题目要求 二.示例数据 三.示例代码 四.解题思路和方法分析 4.1 解题思路分析 4.2 正则方法解题 不正确的解题思路 4.3 递归方法解题 正确的解题思路 4.4 关于解题和面试 ...

  8. 再探C#类与结构体究竟谁快——考虑栈变量、栈分配、64位整数、密封类

    上次我对C#类与结构体做了一次速度评测(http://blog.csdn.net/zyl910/article/details/6788417).经过一段时间思索,发现还可以进一步探讨-- 第一.栈变 ...

  9. C++_类和结构体所占内存大小,静态成员问题

    C++_类和结构体所占内存大小,静态成员问题 静态成员未初始化或者未调用(当然静态成员必须类外初始化才能调用)是不占内存的.静态成员不占类或结构体的内存 静态成员函数同样只声明未定义同样不占内存 指针 ...

最新文章

  1. linux直接控制IO叫,Linux IO控制命令生成
  2. IDEA创建maven JavaWeb工程
  3. 腾讯郭振宇:腾讯云发布云IoT全栈产品矩阵,详解6大产品及3大案例
  4. oracle归档日志保留时间,Oracle 11g Data Guard 备库归档日志清理脚本(保留一周归档)...
  5. Android Coding利器之掌握小技巧,助你Coding更上一层楼~
  6. 你的GitHub,怎么和我用的不太一样?
  7. 电机控制系统php,电机控制系统的未来发展变化趋势
  8. MongoDB(三):数据库操作、集合操作
  9. 百度信誉保障服务架构全解析
  10. 2015阿里数据分析师校招面试经历
  11. 电力猫服务器的网页,电力猫怎么配对?快速配置电力猫的图文教程
  12. python plc fx5u_三菱PLC FX5U定位编程时的注意事项说明
  13. 网易im即时通讯 移动端嵌入web
  14. 2015年8月25号申请入驻一点资讯自媒体平台
  15. 5-2基于贝叶斯算法的新闻分类任务实战
  16. E+H超声波液位计变送器维修FMU90-R11CA111AA3A
  17. D. Make a Power of Two(cf#739DIV3)
  18. iOS App icon、启动页、图标规范
  19. MSP432学习01--新建keil空工程
  20. 基于Flink的日志采集

热门文章

  1. 拓商:如何增加店铺权重,提升店铺转化
  2. 低端机能用鸿蒙系统吗,鸿蒙系统为何只用在中低端手机?
  3. P1295 棋子移动
  4. vcs makefile
  5. Allegro PCB后处理和生产文件导出
  6. 项目总结:如何开发出好的项目
  7. “让机器像人一样思考”2022年北京科技周AI科普课堂完美收官
  8. POJ1664 放苹果问题(递归)
  9. requests.exceptions.InvalidHeader: Invalid return character or leading space in header: user-agent错误
  10. EDM营销之B2C企业邮件营销内容策略