12、iOS系统内存机制

内存机制特点

  • 有限的可用空间
  • 低内存警告
  • 没有内存交换机制
    就是在内存紧张的时候不会把暂时不用的内存置换到硬盘上,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状态

-原文链接-