「內存融合」真的這么厲害嗎?
2021年下半年以來各個國產Android手機廠商似乎約好了一樣,先后推出了各種各樣的“內存融合”技術?!皟却嫒诤稀奔夹g對于過去一直飽受內存不夠用的絕大多數人來說無疑是一大殺器,所以也理所當然地成為了廠商宣傳時的“黑科技”噱頭。
“內存融合技術”優勢何在?長久以來手機圈內一直都在討論一個經久不衰的問題,Android比IOS更耗內存,同時期的iPhone比Android內存更小,但系統運行的速度反而更流暢。
這是因為Android系統運行時需要先打開虛擬機,APP通過Java代碼動態地編譯成SOC芯片能夠識別的機器代碼。在這個過程中APP自動進行內存的分配,而內存釋放卻是有GC完成,內存資源收支分離加重了JVM、Dalvik、ART等等的工作量,所以速度相對就會緩慢。
IOS APP開發用得最多的Objective C、Swift是Native語言,它并不使用GC這樣的機制,避免了額外的內存開銷,而IOS通過GCC編譯出來的代碼可以在蘋果手機上直接運行,并不需要借助虛擬機,GCC使用內存是自己分配和回收,所以執行效率非常高。
通常情況下當Android系統返回桌面或退出軟件時,APP并沒有關閉而是整個保持在內存中,掛起在后臺。蘋果系統按下HOME鍵的那一刻,APP就關閉了,APP只留下最后的運行數據在內存中,當軟件再次打開系統就會將最后保存的數據還原到軟件中,用戶就覺得軟件一直在后臺運行。
現在Android手機動輒10GB內存能夠同時運行APP的數量,其實并沒有過去3GB、4GB內存時代的要多很多。了解過“安迪·比爾”定律的小伙伴就會知道硬件性能提高了一些,很快就會被軟件吃掉。通過“內存融合技術”可以大幅度地增加內存空間,這樣中低端手機用戶就會覺得有明顯的體驗提升,中高端用戶也能夠感覺到性能有所提升。實際具體提升的程度還是得開手機廠商內存擴展的能力,以及軟件調教的能力了。
內存融合技術并不是隔空增加內存早在Android 2.2時代就有了zram、swap來提升系統運行內存了。zram是在物理內存中劃分一個區域用來將APP不活躍的代碼進行壓縮,用的時候再解壓出來。這個方法就會增加CPU負擔,需要CPU計算和甄別不活躍的代碼。
swap則有點像windows里的虛擬內存,當內存不足的時候就會將存儲空間作為內存來使用,這樣系統就可以同時運行更多的程序,存儲讀寫速度遠低于內存,所以卡頓是理所當然的。
“內存融合技術”其實就是舊酒裝新瓶,有的廠家用了zram技術來擴展內存,有的用了swap技術來擴展內存,絕大多數都是zram、swap同時上效果更佳。
這個技術其實過去一直在用,但在eMMC存儲時代提升得并不明顯,只能用來緩解內存不足的問題,但現在不一樣了,因為UFS存儲芯片速度有了大幅提升,所以“內存融合技術”才有了有感的用武之地。
“內存融合”開還是不開好從手機本身的角度來說,開啟“內存融合技術”會一定程度上加重CPU的負擔,也會導致存儲芯片過早進入老化階段,大家都知道存儲芯片的壽命是按多少次完成的讀寫來計算,“內存融合”頻繁的讀寫勢必會加速存儲芯片的使用壽命。
對于絕大多數普通人來說手機普遍是用1~2年就會更換,平常CPU很大一部分性能都是閑置狀態,存儲芯片可能手機扔掉了還沒有壞,所以對于絕大多數人來說“內存融合”技術所帶來的快感是值得?!皟却嫒诤稀遍_不開還是得根據每個人的實際情況來。
以上個人淺見,歡迎批評指正。
認同我的看法,請點個贊再走,感謝!
喜歡我的,請關注我,再次感謝!