12、iOS系统内存机制

作者: MartinCQ | 来源:发表于2017-06-08 15:05 被阅读618次
    内存机制特点
    • 有限的可用空间
    • 低内存警告
    • 没有内存交换机制
      就是在内存紧张的时候不会把暂时不用的内存置换到硬盘上,PC机有这个机制
    • 使用虚拟内存机制
      内存分页5kB为一个Page,并不是所有Page都会被映射到内存上,Page有三种状态
      • Nonresident 表明该Page没有映射到内存上
      • Resident and clean 当时readonly文件加载到内存中的Page是clean memory,如framework、可执行文件、通过mmap(内存映射)方式读取的文件都是Resident and clean,就是内存紧张的时候会被unload出去,而需要的时候又load回来
      • Resident and dirty 非clean的page都是dirty,这种内存只有在进程被杀死的时候才能被收回。
        malloc申请的内存如果没用过就是Nonresident状态,用了就是 dirty状态
        mmap进来的文件用了哪哪就是clean状态其他地方是Nonresident状态
    简述内存分区情况
    • 代码区:存放函数二进制代码
    • 数据区:系统运行时申请内存并初始化,系统退出时由系统释放,存放全局变量、静态变量、常量
    • 堆区:通过malloc函数或new函数等操作符操作的得到,需要程序员自己管理
    • 栈区:函数模块内申请,函数结束时自动释放,存放局部变量,函数变量

    相关文章

      网友评论

        本文标题:12、iOS系统内存机制

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