内存融合这玩意到底有没有用?
这两年手机应用是设计的越来越放肆了,每个 APP 运行起来占据的空间也是越来越大,直接给我整出 “ 内存焦虑 ” 了。
平时我微信聊的好好的,可能切出去拍张照片,所有应用的后台就都被杀完了。
所以为了能给用户多腾点内存出来,除了加钱以外,各家厂商也是纷纷推出了自己的 “ 内存融合 ” 技术。
对手机稍微有些关注的可能会注意到,这几年各家厂商发各种新机的时候,会在标注手机内存的地方,整上一个 xxG + xG 的文案,比如什么 8Gb + 4G , 12Gb + 8Gb 等等。
乍一看好像是 12G 的内存加 8G 的内存,就能原地达到 20G 内存的效果,但是在这个数据的边角上,又会打一个如同免责声明一样的 “*” 号,在告诉你两者的不同。
所以,这技术真的能让内存空间 “ 凭空增加 ” 么?
白嫖的代价又是什么?
今天,我来好好的带着大家文艺复兴一番,聊聊现在都 2023 年了,这 21 年火起来的技术到底好不好使。
>/ 新了,但是技术也不新
要讲内存融合,咱们得先简单聊一下手机的存储到底是个咋回事。
咱们手机里主要负责放数据的地方有两个,一个是 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 数据才行。
恩。350G ,我每天可能 3G 都用不到。
不过话说回来吗,尽管伤不到闪存,但是内存融合还是多少显的有些鸡肋。
对中低端手机来说,或许本身内存太小了,需要内存融合来保留更多的应用后台,但是又会因为 SoC 性能不够导致在 “ 融合 ” 的时候发热,耗电量增加,给体验拖后腿。
对旗舰手机来说, SoC 的性能是够了,但是把往往内存本身又已经足够大了。真的不缺这一点融合出来的半生不熟内存。
除非有那么一台手机,既有着旗舰级的 SoC ,又有着次旗舰的内存。
应该不会有厂家做这种选择吧?
应该,吧。
所以说开不开内存融合,就成了一个选择题——得看你是更喜欢更多的后台保留,还是要更流畅的打开每个 APP ?
再或者就是直接加钱好了,直接买 12G 或者是 16G 内存的手机。
等到 APP 开发再张牙舞爪一轮,12G 的手机需要内存融合来挽救的时候,
可能也该换新机器了。