年下半年以来各个国产Android手机厂商似乎约好了一样,先后推出了各种各样的“内存融合”技术。“内存融合”技术对于过去一直饱受内存不够用的绝大多数人来说无疑是一大杀器,所以也理所当然地成为了厂商宣传时的“黑科技”噱头。
“内存融合技术”优势何在?
长久以来手机圈内一直都在讨论一个经久不衰的问题,Android比IOS更耗内存,同时期的iPhone比Android内存更小,但系统运行的速度反而更流畅。
这是因为Android系统运行时需要先打开虚拟机,APP通过Java代码动态地编译成SOC芯片能够识别的机器代码。在这个过程中APP自动进行内存的分配,而内存释放却是有GC完成,内存资源收支分离加重了JVM、Dalvik、ART等等的工作量,所以速度相对就会缓慢。
IOSAPP开发用得最多的ObjectiveC、Swift是Native语言,它并不使用GC这样的机制,避免了额外的内存开销,而IOS通过GCC编译出来的代码可以在苹果手机上直接运行,并不需要借助虚拟机,GCC使用内存是自己分配和回收,所以执行效率非常高。
通常情况下当Android系统返回桌面或退出软件时,APP并没有关闭而是整个保持在内存中,挂起在后台。苹果系统按下HOME键的那一刻,APP就关闭了,APP只留下最后的运行数据在内存中,当软件再次打开系统就会将最后保存的数据还原到软件中,用户就觉得软件一直在后台运行。
现在Android手机动辄10GB内存能够同时运行APP的数量,其实并没有过去3GB、4GB内存时代的要多很多。了解过“安迪·比尔”定律的小伙伴就会知道硬件性能提高了一些,很快就会被软件吃掉。通过“内存融合技术”可以大幅度地增加内存空间,这样中低端手机用户就会觉得有明显的体验提升,中高端用户也能够感觉到性能有所提升。实际具体提升的程度还是得开手机厂商内存扩展的能力,以及软件调教的能力了。
内存融合技术并不是隔空增加内存
早在Android2.2时代就有了zram、swap来提升系统运行内存了。zram是在物理内存中划分一个区域用来将APP不活跃的代码进行压缩,用的时候再解压出来。这个方法就会增加CPU负担,需要CPU计算和甄别不活跃的代码。
swap则有点像windows里的虚拟内存,当内存不足的时候就会将存储空间作为内存来使用,这样系统就可以同时运行更多的程序,存储读写速度远低于内存,所以卡顿是理所当然的。
“内存融合技术”其实就是旧酒装新瓶,有的厂家用了zram技术来扩展内存,有的用了swap技术来扩展内存,绝大多数都是zram、swap同时上效果更佳。
这个技术其实过去一直在用,但在eMMC存储时代提升得并不明显,只能用来缓解内存不足的问题,但现在不一样了,因为UFS存储芯片速度有了大幅提升,所以“内存融合技术”才有了有感的用武之地。
“内存融合”开还是不开好
从手机本身的角度来说,开启“内存融合技术”会一定程度上加重CPU的负担,也会导致存储芯片过早进入老化阶段,大家都知道存储芯片的寿命是按多少次完成的读写来计算,“内存融合”频繁的读写势必会加速存储芯片的使用寿命。
对于绝大多数普通人来说手机普遍是用1~2年就会更换,平常CPU很大一部分性能都是闲置状态,存储芯片可能手机扔掉了还没有坏,所以对于绝大多数人来说“内存融合”技术所带来的快感是值得。“内存融合”开不开还是得根据每个人的实际情况来。