“手机内存越大,运行速度越快”这个观点似乎已经在大家的心里根深蒂固很久了 。宏观上看,内存越大,可以被存放的数据越多,存储器件上需要读取的数据量也会随之下降 。但是内存大了之后,为什么还是会有卡顿现象呢?这就要从内存数据类型与管理方式上说起 。

文章插图
手机内存中存放的数据可大致分成两类一类是文件类型数据(或叫文件页数据),其中包含了图片数据,文件数据,程序执行的代码文件等等 。另一类是匿名类型数据(或叫匿名页数据),主要存放代码执行过程的临时变量数据(为啥叫匿名啊?因为匿名页数据没来源啊,惨~) 。

文章插图
当内存不足时,就要从这两类数据开刀文件页数据多数为只读数据,同时在存储器件上有备份 。因此,内存管理机制喜欢回收文件页数据(没办法呢,欺负弱小嘛) 。
匿名页数据都是程序运行时产生的,一旦丢了就没有了,所以匿名页数据的地位高一些 。当然强大的内存管理者也不会放任匿名页这个家伙慢慢做大,在手机平台上,就采用了数据压缩的方式,把匿名页数据压缩,节省内存空间 。

文章插图
内存回收管理过程中的烦恼从回收手段上看,文件页数据在没有弄脏的(有脏数据)情况下丢掉就好了,回收的成本比较低,可以近似看成是空闲的内存 。咱们手机上清后台时候看到的可用内存其实就是文件页数据加上内存空闲空间的总和 。所以,当你看到可用内存很多,但是还是有卡顿感觉的时候,不要诧异哦 。因为那是算了文件页面之后的内存统计量,并不是完全空闲的内存统计量 。

文章插图
那么兄弟们肯定要问了,反正前面说文件页面的回收速度很快嘛,所以可用内存高,程序运行应该也很快啊 。这里就涉及到一个关键问题了,文件页面回收真的没有开销吗?
【手机内存越大,运行速度越快吗?】第一种情况,已经被扔掉的文件页面数据,短期内可能不会用到了,这个时候确实扔掉文件数据性能会好 。
但第二种情况下,如果扔掉的文件页很快就会用到呢?这个时候,这些数据就要从存储器件重新读取,这个开销可是不小 。这个就像是你去银行贷款,乍一看你似乎很快拿到了很多的钱,但是由于这个东西是有利息的,随着你借的钱越多,那么你还的利息就要越多 。如果还不上,你就可能去别的银行借钱(影响别的程序执行) 。最后就会由于钱还不上,就把系统卡住了,这里利息就是IO开销 。

文章插图
既然回收文件页面有这个风险,那就走匿名页回收嘛,一个想法油然而生从心底想起 。匿名页回收需要进行数据压缩 。“来来来,交给我”CPU在旁边摇旗呐喊,目前数据压缩需要使用占用一部分CPU算力 。当然,以现在的CPU算力来看,数据压缩对用户性能的影响是微乎其微的 。然而,这玩意费电啊,同时,手机也烫手啊 。为了能够尽快的把数据压缩出来,CPU跟打了鸡血一样,把自己调整成高频状态,尽快完成工作 。

文章插图
要是这样,内存管理不就是无解了吗?哎,终于了解研发人员的痛苦了吧?但是研发人员是不会也不能向困难屈服!现在就给大家介绍下EMUI 10的智能内存管理引擎的工作原理 。
夹缝中需求最优解,引入器件性能评价体系,将存储器件性能,CPU性能功耗纳入考量范围,动态调节内存回收机制,平衡文件页与匿名页数据回收比例 。在硬件内存配置降低场景下,也能确保流畅的用户体验,大幅降低由于内存供给不足或者内存浪费带来的系统性能二次创伤 。
首次加入软件特征识别模块,能够在线识别软件访存行为的特征,针对访存的连续性,Burst 特性与访存混合比例构建内存行为模型,为不同的应用提供精准的内存供给 。

文章插图
同时,为了提升内存的利用率,智能内存管理引擎在线识别数据的冷热特性,能够将长期未使用的数据进行聚拢,并剔除内存 。程序对数据的访问就像人对周围事物的感知一样,多数事物都是只图一时新鲜 。而这些一时新鲜的东西却会占用手机的内存,不断消耗着内存那脆弱的心灵 。智能内存管理引擎提供冷热数据解析功能,替您识别并剔除路边野花 。让您在手机道路上流畅无阻 。
推荐阅读
- 手机验证码截获器 专门盗抖音号的软件
- 废旧Android手机如何改造成Linux服务器?
- 正规挖矿赚钱app 手机app赚钱
- 华为天际通流量卡能插手机吗,华为天际通流量卡怎么办理
- 手机里面的水印如何去除 手机照片如何去水印
- 黑鲨游戏手机|一代神U骁龙870加持!黑鲨5开售:2799元起
- 手机信号栏常用“符号”大揭秘!
- 智能手机频繁卸载和安装软件,会影响手机寿命跟性能?
- 手机上这些功能要慎用,你知道吗?
- 手机内存垃圾不会清理?学会删除这几个文件夹,瞬间腾出几个G
