当前位置: 手机中国论坛 > 荣耀论坛 > 荣耀10论坛 > 讨论 > 帖子正文

[讨论] 手机剩余内存大并不一定流畅

2018-11-23 20:03:09 106 评论(0)

最近更新了安卓P后,发现好多人吐槽说剩余内存小了。其实这是个好事情,看看这篇我之前发布公司内部期刊上文章吧。或许你就不会再抱怨剩余内存小了。



现在手机的运行内存越来越大,甚至都已经和电脑的运行内存容量在同一水平了。但我们仍然还是会听到很多人说:我的手机太卡了,手机运行内存太小了,都只剩下一点点了。但剩余内存少,真的就会卡吗?那我就来详细地聊一聊吧。

其实很多人对于内存的认识大多来源于电脑,更确切的说是来自于使用windows系统的电脑。由于windows系统的内存管理机制是:开机只占用系统需要的内存空间以及自启动软件占用的内存空间。剩余内存就是你运行软件时可以使用的内存容量。所以,在这样的内存管理机制下,内存剩余空间大小,就会和系统运行流畅与否有直接影响,剩余空间越小,系统运行越容易卡顿。

然而这个世界上,并不是只有windows系统。按照大类来分,可以分为三大类,UNIX系统、Windows系统,Linux系统。


1.        UNIX系统:这是历史最悠久,最稳定的操作系统。但由于使用操作难度极高,并且授权价格相当高昂,因此无法普及。普通用户能够有接触到的UNIX系统,只有经过苹果深度定制开发的Mac OS系统。
2.        Windows系统:这是现在使用最广泛的电脑及服务器系统。对于这个系统应该是无人不知了吧。这个系统的优势在于,简单易学,功能强大,易于普及。但缺点就是,稳定性很差,系统运行效率最低,正版软件授权费用较高。
3.        Linux系统:这个是最年轻的操作系统,这个系统来源于UNIX,但规避开了所有需要UNIX授权的部分。这个系统坚持着黑客们(不是骇客)一直崇尚的自由开放的理念。Linux系统是免费的,任何人只有有能力对其进行修改和定制,都有权开发属于自己的操作系统,且不需要任何授权。因此,Linux已经在全世界范围内,拥有了数百个衍生版本,其中最有名的两个已经称霸手机领域了,苹果iOS和谷歌Android。当然这两个系统,定制开发极深,几乎已经能算是独立于Linux系统之外了,但还是保留了一些来自于Linux系统的特性。Linux系统小巧、灵活,能够适用于各种设备,而不仅限于电脑。并且也继承了老祖宗UNIX系统的超强稳定性,极高的运行效率。但却也同时继承了Unix系统极高难度的操作方式。

言归正传,说回手机。现在的手机主要使用的是IOS或者Android系统,对于这两个系统而言,传统对于内存空间的认识就完全不适用了。由于这两个系统都是基于Linux系统深度定制开发的,但使用的却是同样的Linux内存管理机制,这个内存管理机制,相对于windows那种简单直接的内存管理机制来说,有着更高的效率。

Linux系统及其衍生的系统的内存管理方式是:开机的时候,系统会直接占用物理运行内存的一半,甚至超过一半的空间。当然这些空间并非是给系统使用的,系统通常只占用大约500M左右的空间而已,其余的空间都被系统划分为缓存空间,物理内存越大,划分的缓存空间就越大。因此,iOS和Android都是这样,开机后都会占用大部分内存空间。当运行软件时,系统会把开机时保留的缓存空间给软件使用,而当保留的缓存空间不足时再从剩余内存空间中调用,加入缓存空间。而当剩余内存容量小于一定限度,通常是500M左右,系统会清理缓存较为老旧或者调用频率较低的缓存,并把空间返还到内存剩余空间中。缓存中的数据读写速度非常快,这样做的好处可以使软件开启及运行速度更快。而且由于内存是随机存储器,断电后不保存任何数据。手机重启后,缓存中的数据就全部清理掉了,不会在手机存储空间里留下缓存文件。而我们通常清理手机垃圾文件,其实清理的是软件生成的垃圾文件,而不是缓存文件。但windows系统的缓存是存在系统存储设备上的,因此,windows下的垃圾文件,既有软件生成的垃圾文件,也有软件和系统运行生成的缓存文件。

根据上面所说的内存管理机制,会出现的情况就是:6G内存的手机,开机大约只剩下3G左右,随着使用时间的推移,剩余空间会越来越少。而当你打完一个大型3D游戏后,突然发现内存剩余空间又恢复到3G左右的情况了。

这样的内存管理机制,正常情况下,应该不会仅仅因为内存关系而已出现卡顿的。很多时候,都是因为同时运行的软件数量过多,导致处理器来不及响应,并且过多的软件同时运行,占用了过多的缓存空间,而系统是无法清理缓存空间中被占用的缓存文件的。如果这个时候系统无法从剩余内存空间中再调用更多的内存空间来补充,那就会发生卡顿。

我想看到这里有人会感到奇怪,为啥同样的内存管理机制,苹果手机却能够以更小的内存做到超越Android所有手机的流畅度呢?其实苹果的iOS系统在内存管理机制上做了一些改进,使iOS系统的内存管理机制变得更加极致了。Android系统开机后通常占用一半内存空间,但iOS几乎是占用全部物理内存空间。如果你在iOS设备上装上一个可以查看内存使用情况的软件,你就会发现,你的iOS设备,刚开机,内存占用率就在90%以上。因此,IOS系统缓存空间不足的时候,没有调用剩余空间的机制,而是很极端地强制关闭后台运行的程序进程,并清理掉所有相关的缓存文件。这样就保证了苹果手机几乎没有卡顿的问题发生,但却无数次地被吐槽“假后台”。因为这种强行关后台的机制,导致一些后台运行的软件,在内存不足时会被系统强行关闭。因为这个机制,也直接导致了苹果手机连接第三方智能穿戴设备时会发生不稳定的情况,毕竟智能穿戴设备的手机端APP需要始终驻留在后台运行。

其实苹果早就发现了用户这个对于内存占用量大的忧虑,所以苹果的iOS系统就从来不显示内存使用情况,让用户眼不见心不烦。不然以iOS如此高的内存占用情况来看,苹果的用户大概会减少一半以上吧。

所以,请不要再为剩余内存不足而担忧了,那是操作系统该关心事情,作为用户,我们只要在乎使用体验就行了。


不吐不快,我来说两句... 登录 | 注册

发布
暂时没有回复

您需要注册登录后,才能回帖哦! 登录 | 注册