本文来自微信公众号:差评 (ID:chaping321),作者:托尼,撰文:小陈,编辑:面线,头图来自:unsplash


内存融合这玩意到底有没有用?


这两年手机应用是设计得越来越放肆了,每个 APP 运行起来占据的空间也是越来越大,直接给我整出“内存焦虑”了。


平时我微信聊得好好的,可能切出去拍张照片,所有应用的后台就都被杀完了。



所以为了能给用户多腾点内存出来,除了加钱以外,各家厂商也是纷纷推出了自己的 “ 内存融合 ” 技术。



对手机稍微有些关注的差友可能会注意到,这几年各家厂商发各种新机的时候,会在标注手机内存的地方,整上一个 xxG + xG 的文案,比如什么 8Gb + 4G , 12Gb + 8Gb 等等。


乍一看好像是 12G 的内存加 8G 的内存,就能原地达到 20G 内存的效果,但是在这个数据的边角上,又会打一个如同免责声明一样的 “*” 号,在告诉你两者的不同。



所以,这技术真的能让内存空间“凭空增加”么?


白嫖的代价又是什么?


今天,托尼来带着大家文艺复兴一番,聊聊现在都 2023 年了,这 2021 年火起来的技术到底好不好使。


新了,但是技术也不新 


要讲内存融合,咱们得先简单聊一下手机的存储到底是个咋回事。


咱们手机里主要负责放数据的地方有两个,一个是 DRAM(俗称内存/运存/RAM),一个是 NAND Flash(俗称闪存/硬盘/ROM )


内存可以几乎无限制的读写数据,而且读写数据的速度非常快,但唯一的问题就是健忘,断电之后里面存的数据就丢光了。


所以通常来说,内存里放的是我们打开 APP 后产生的“临时数据”


平时讲的后台保活,就是要保证这些应用可以让他们的数据运行在这些内存里面,不被“杀掉”。


那这么说,岂不是物理内存越大,就越不容易杀后台了?


倒也没错,但内存还有一个问题,那就是贵,前几年手机基本只有 8G 内存,这两年好了一些,厂家也逐渐安排上了 12G 、 16G 的内存空间。


实际上由于边际效益递减原因,再往上堆叠内存带来的正向收益就非常有限了,直接干到 18G 的厂商更是少之又少。


所以为了解决杀后台的情况,同时,厂家就把目光投向了“单价”更便宜的手机硬盘,也就是闪存上来了。都是存东西,我从这儿偷点空间来没问题吧!


这就引出了内存融合技术的前身—— SWAP。


其实这个技术早在安卓 2.2 的时候就有了,本质就是将一些内存中不怎么用得到的数据压缩,丢到闪存空间里存储,等到需要用的时候再重新读出来



通过这样的方法,来实现可以在后台驻留更多的 APP 的效果,省得手机自动杀后台,也省得我们收不到应用的推送。



除此之外,还有一种叫 Zram 的技术也可以提高我们的内存利用率。


它能够将一些内存中不怎么活跃的部分在内存中压缩,等需要用的时候再取出来,就是上图里的“应用内存压缩”。


所以说,站在底层原理的角度来看,内存融合其实并不算什么很新的技术,更多的还是一种对过去 SWAP 和 Zram 技术的融合。


而且这类技术老早就用在我们的 Windows 电脑上了:


为了减少软件崩溃,增加系统的稳定性,微软给电脑引入了虚拟内存技术。



存了,但是效果不行 


所以,这么一个经典,在电脑上用了十几年的技术,在手机上用起来好使么?


说实话,不太行,不但不如原生内存,在有些场景上反而还会拖后腿



虽然内存融合可以让 APP 逃离被杀后台的命运。


但是,你内存什么读写速度,你闪存什么读写速度?


目前主流手机上的 LPDDR5X 内存的读写速度换算下来理论是 68.2GB/s ,比起闪存的读写速度来说快了几十倍不止。



那让闪存强行干内存的活,哪里能干得好。


所以实际体验下来,打开了内存融合的手机能保留更多的后台应用。


但是可能会因为 SWAP 反复把数据从闪存和内存倒腾,导致手机卡顿明显增多。


也会因为 Zram 反复压缩内存里的数据,导致 CPU 性能被占用,手机整体响应变迟缓,发热量增加。


托尼自己也试了一下,拿来一台打开内存拓展功能的手机,连续打开十几个常用 APP 。


这样一轮操作还没做完,手机就感觉明显变卡了,甚至还出现了应用不跟手的情况。



讲道理,都卡成 PPT 了,那我还宁愿你给我重新打开一下应用,说不定更流畅呢。


而卡顿还只是一方面,内存融合还可能会对闪存的使用寿命有影响


和寿命接近无限的内存比起来,一块闪存可以被改写多少次数据,是从它被造好的那一刻开始决定的。


比如 PLC 闪存早年的理论寿命只有全盘写入 35 次,相当于 1T 的闪存只能写入 35T 就离损坏不远了。



你数据写的越多,那它能坚持的时间自然越少,也越容易坏。


而内存融合嘛,正是频繁地将内存里活跃的数据给丢到数据不活跃的闪存中。


那如果背后的程序员没调试好,啥数据都不加节制地乱丢,那确实会对闪存的寿命造成影响。


比如之前 Mac 的一些 BUG ,导致用户用了 60 天就消耗了这块 256G 闪存 10% 的写入寿命。



但是好在如今内存融合在打磨了这么多年之后,其实各家都已经有了一个相对成熟的调度机制了,正常使用下来,不会对闪存寿命造成非常严重的影响。


咱们也不用过分恐慌内存融合,一般正常使用的话,闪存寿命还是要比手机寿命长一些的。


我掐指(用 ChatGPT)一算,就拿目前手机里常见的 256G TLC 闪存颗粒来说,按照 1000 次的擦写寿命来算,咱们想在两年内用坏,每天得要写入 350G 数据才行。



不过话说回来,尽管伤不到闪存,但是内存融合还是多少显得有些鸡肋。


对中低端手机来说,或许本身内存太小了,需要内存融合来保留更多的应用后台,但是又会因为 SoC 性能不够导致在“融合”的时候发热,耗电量增加,给体验拖后腿。


对旗舰手机来说, SoC 的性能是够了,但是往往内存本身又已经足够大了……真的不缺这一点融合出来的半生不熟内存。


除非有那么一台手机,既有着旗舰级的 SoC ,又有着次旗舰的内存。


应该不会有厂家做这种选择吧?


应该,吧……



所以说开不开内存融合,就成了一个选择题——得看你是更喜欢更多的后台保留,还是要更流畅地打开每个 APP ?


再或者就是直接加钱好了,直接买 12G 或者是 16G 内存的手机。


等到 APP 开发再张牙舞爪一轮,12G 的手机需要内存融合来挽救的时候,可能也该换新机器了。


资料来源:

8533Mhz的LPDDR5X内存,未必有你想的那么快

安卓手机内存未必越大越好


本文来自微信公众号:差评 (ID:chaping321),作者:托尼,撰文:小陈,编辑:面线