美文网首页
iOS系统内存与桌面系统内存探索

iOS系统内存与桌面系统内存探索

作者: iOS开发周立贺 | 来源:发表于2018-01-30 10:43 被阅读86次

为什么桌面系统中很少有应用因为内存过多而被Kill掉,但是iOS会呢?

对于桌面操作系统,是具有丰富的辅存的,我们的操作系统可以使用置换机制(Swap)。比如说,我物理内存紧张了,我就把我现在不用的进程暂时置换到磁盘去,腾出空间给新的进程,这样就相当于使用磁盘来扩展物理内存。


image
Swap机制

但是对于移动设备(包括苹果、安卓等),无Swap机制,主要是由于移动设备的闪存容量很有限,并且闪存的频繁读写很降低寿命。对于iOS使用的就是Kill掉优先级低的进程。下面一个问题进行详细阐述。

iOS内存管理机制是怎样的?基于什么原则来Kill掉进程呢?

iOS使用的是低内存处理机制Jetsam,这是一个基于优先级队列的机制。


image
优先级

从上往下,优先级越来越高,看图可以发现,优先级由低到高是:IDLE(空闲)->BACKGROUND->FOREGROUND,依次类推。当内存过低的时候,就会在队列中进行广播,希望大家尽量释放内存,如果一段时间后,仍然内存不够,就会开始Kill进程,直到内存够用。

相关文章

  • iOS系统内存与桌面系统内存探索

    为什么桌面系统中很少有应用因为内存过多而被Kill掉,但是iOS会呢? 对于桌面操作系统,是具有丰富的辅存的,我们...

  • 探索iOS内存分配

    探索iOS内存分配 探索iOS内存分配

  • ios内存管理

    ios内存管理 一.前言 在ios中,系统对每个程序运行时内存的占有...

  • OC语法_IOS内存管理

    目录: 1、内存的定义 2、内存管理的基础概念 3、IOS系统中的内存管理 1、内存的定义 1.1. 内存是计算...

  • IOS didReceiveMemoryWarning 的那些事

    iOS的UIViewController 类给我们提供了处理内存不足的接口。 在iOS 3.0 之前,当系统的内存...

  • iOS系统信息 UUID,设备型号,wifi,可用内存,占用内存

    iOS获得系统信息 UUID,设备型号,wifi,可用内存,占用内存 都是一些系统自带的东西,很简单。 菜鸟走向大...

  • iOS 内存管理

    iOS 的内存管理分为 MRC 跟 ARC 一 、 为什么要管理内存 当 app 所占的内存比较多的时候,系统会发...

  • 【操作系统】3.1 内存管理基础

    1.内存管理的介绍 问题:操作系统的内存管理主要是做什么? 操作系统的内存管理主要负责①内存的分配与回收(mall...

  • iOS内存相关问题小结

    1.iOS内存 IOS 内存区主要可以划分为五个区,栈区、堆区、全局变量区、常量区、代码区。 栈区:系统负责内存管...

  • centOS下内存分析方法

    应用程序可用内存/系统物理内存>70%时,表示系统内存资源非常充足,不影响系统性能, 应用程序可用内存/系统物理内...

网友评论

      本文标题:iOS系统内存与桌面系统内存探索

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