IOS系统内存管理机制以及和windows的对比解说--记者团
社区服务
火星文
银行
结婚
道具中心
勋章中心
管理操作原因
基本信息
管理团队
管理操作
在线会员
会员排行
版块排行
帖子排行
手机版
小说论坛
用户中心
搜索
银行
猴岛论坛
帖子
用户
版块
帖子
高级搜索
社区服务
签到统计
关闭
选中
1
篇
全选
猴岛论坛
手机数码
IOS系统内存管理机制以及和windows的对比解说--记者团
发帖
回复
倒序阅读
最近浏览的帖子
最近浏览的版块
« 返回列表
新帖
悬赏
任务
交易贴
自动发卡
拍卖
红包
际遇红包
3
个回复
IOS系统内存管理机制以及和windows的对比解说--记者团
楼层直达
Mr、安小寶
ZxID:2424
关注Ta
注册时间
2006-08-30
最后登录
2023-07-17
发帖
26537
在线
5015小时
精华
4
DB
1054
威望
10173
保证金
0
桃子
28
鲜花
0
鸡蛋
0
访问TA的空间
加好友
用道具
发消息
加好友
他的帖子
对该用户使用道具
qq
等级:
元老
举报
只看楼主
使用道具
楼主
发表于: 2012-09-03
0
关于touch4的小内存到底是不是不够用会不会拖慢系统运行速度的问题发生了一些分歧,今天我就结合我所学的知识稍微分析一下IOS的内存管理机制,方便大家理解。所学有限,如有说错,欢迎指正。
首先要说明的是,IOS以及Mac os都是基于Unix/linux改造出来的,而在内存管理方面也沿用了Unix/Linux的内存管理机制,个人认为是比windows要先进的,后面详述。【注】此处的内存跟电脑的内存是一个意思,即手机的运存,而通常所说的内存其实是外存,即电脑上硬盘之类的东西。后文一律用内存外存表述。
下面主要说的是IOS系统,有很多比较喜欢捣鼓的吧友肯定自己清理过机器的内存,而装过内存清理软件比如内存优化大师、weestats插件什么的,一定会发现内存分成了四部分:可用空间、联动、活跃、非活跃。而多数人尤其是touch和ip4之前的小内存机型的吧友经常会惊呼,哇!可用空间这么小了啊!小内存机器就是不耐艹啊!
众所周知,CPU的处理速度和数据IO的速度是有数量级级别的差距的,而高速存储器的造价非常高,所以折中的做法是分级管理,CPU,二级缓存,内存,外存。速度依次递减。而在速度最慢的外存中,数据通常是以顺序存储的方式存储的,好处是方便顺序读取。好了,说到这里我要普及一个概念叫做局部性原理,就是在访问数据时,访问到这一个存储块的数据也很有可能访问到相邻下一个数据块的数据,因此在程序像CPU发出数据请求然后CPU发出指令把数据从外存调入内存时,Unix/Linux系统下的做法是把相邻若干个存储块的数据一起调入内存,这样就减少了将数据从外存调入内存的操作,可以大大提高IO速度。(UC浏览器用过吧,缓存下一页熟悉不?)
返回来再看我们的内存管理软件。可用空间,识字的都能看得懂,不说了。联动,是操作系统内核程序和数据,以及打开的程序,这个是肯定不能动的,不多说。活跃,就是最近做过访问以及读或者写操作的,换句话说就是程序现在正在用的。非活跃,重点来了,这就是根据局部性原理从外存中提前预读进来的数据,几乎所有的内存清理软件,都是在这上面做文章。前面说了,这部分数据提前预读进来是为了提高IO速度的,而多数内存清理软件为了造成可用空间变大,会释放这部分数据变成可用空间,看起来好像清爽很多,可是实际是这样么?再次引用局部性原理,这部分数据很有可能是程序接下来会用到的,你现在把他们释放了,过一会还需要从外存中调入进来,而这个过程是需要时间的。因此这样清理内存的做法,不但不会提高系统的速度,反而会拖慢速度。
怎么样看内存才是科学的呢?联动和活跃自然是不能动的,正确的做法是看非活跃数据是否很多,如果很多,不需要看可用了,你的内存还够用。如果你非活跃数据很少,那么看看可用空间,如果很多,好吧,这是你们看起来最顺眼的状态。而如果可用空间也很少,清理几个吃内存的deb插件吧,多数是美化的。各位,不要再小白了,非活跃内存不是垃圾!!!
其实我本人是很吐槽说内存不足以及有些人没事就清理内存这种做法的。为什么呢?简单地说,因为你手上的设备跑的不是windows系统,不需要沿用windows的使用习惯。windows系统和unix/linux系统是完全不同的,windows为了兼容古老和不规范的程序,允许程序直接控制硬件,而许多windows程序也不规范,因此在退出进程后往往许多内存没有还给系统,而又没有自己释放掉,因此变成了invisible memory,导致时间一长系统可用内存越来越少,此时便需要重启系统或者清理内存。
为了解释ios的后台机制,我需要再引用一个概念,就是进程挂起。挂起进程在操作系统中可以定义为暂时被淘汰出内存的进程,机器的资源是有限的,在资源不足的情况下,操作系统对在内存中的程序进行合理的安排,其中有的进程被暂时调离出内存,当条件允许的时候,会**作系统再次调回内存。而IOS下所有的后台程序都是挂起的,占用CPU么?不。占用内存么?也不。不同于windows,开一个窗口占一份内存,开的越多系统越卡。
啰嗦了这么多,我就想表达一个意思,不需要去在意你手上的设备内存是不是不够了,也不需要刻意的去清理内存。而让touch 256mb内存不够用的程序,纵使有,也不会很多。即便新一代touch即将上市,现在的款依然有性价比。现在再打开你的内存清理软件,感觉是不是和以前不一样了?
本帖de评分:
共
2
条评分
DB +30
心缘°
DB
+20
2012-09-04
精品文章,手机交流版欢迎你,常驻哦。
淡指笑红颜y丶
DB
+10
2012-09-04
很有用啊
隐藏
本帖de打赏:
共
条打赏
隐藏
打赏
收藏
新鲜事
相关主题
iPhone4S 5.0.1完美越狱教程(Windows正式版)以及iOS 5.0.1完美越狱出现“Waiting for reboot”解决方法
IPhone手机ios 5.01系统完美越狱教程--记者团
史上最全的iPhone手机新手教程(必看)--记者团
必读的iPhone手机基本功能介绍(三)
必读的iPhone手机基本功能介绍(二)
必读的iPhone手机基本功能介绍(一)
回复
引用
鲜花[
0
]
鸡蛋[
0
]
Mr、安小寶
ZxID:2424
关注Ta
注册时间
2006-08-30
最后登录
2023-07-17
发帖
26537
在线
5015小时
精华
4
DB
1054
威望
10173
保证金
0
桃子
28
鲜花
0
鸡蛋
0
访问TA的空间
加好友
用道具
发消息
加好友
他的帖子
对该用户使用道具
qq
等级:
元老
举报
只看该作者
沙发
发表于: 2012-09-03
0
没人顶,我自己来
本帖de评分:
共
0
条评分
隐藏
本帖de打赏:
共
条打赏
隐藏
回复
引用
新鲜事
鲜花[
0
]
鸡蛋[
0
]
我为机狂
ZxID:18240933
关注Ta
注册时间
2012-05-24
最后登录
2023-10-08
发帖
3190
在线
2286小时
精华
1
DB
4261
威望
9037
保证金
0
桃子
0
鲜花
0
鸡蛋
0
访问TA的空间
加好友
用道具
发消息
加好友
他的帖子
对该用户使用道具
qq
等级:
元老
举报
只看该作者
板凳
发表于: 2012-09-04
0
很有用啊
本帖de评分:
共
0
条评分
隐藏
本帖de打赏:
共
条打赏
隐藏
回复
引用
新鲜事
鲜花[
0
]
鸡蛋[
0
]
IUQI
ZxID:13769813
关注Ta
注册时间
2010-12-24
最后登录
2020-03-07
发帖
18969
在线
3277小时
精华
1
DB
6176
威望
5631
保证金
0
桃子
0
鲜花
0
鸡蛋
0
访问TA的空间
加好友
用道具
发消息
加好友
他的帖子
对该用户使用道具
等级:
元老
举报
只看该作者
地板
发表于: 2012-09-04
0
嗯哪,现在手上没苹果的东东。
本帖de评分:
共
0
条评分
隐藏
本帖de打赏:
共
条打赏
隐藏
回复
引用
新鲜事
鲜花[
0
]
鸡蛋[
0
]
« 返回列表
发帖
回复
关闭