search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

很多人說蘋果2GB運存就很流暢,而安卓機6GB還卡頓,到底為什麼?

奇客智能【GeekSmart】 文|左遠良

首先不能把iOS和安卓的內存直接拿來對比,首先要明白他們的後台機制是不一樣的,對於運存RAM的依賴也不一樣。

先說一下蘋果ios的墓碑機制,也就是「偽後台」吧。

蘋果iOS 4-iOS 8 期間,iOS 均採用這種後台機制。隨著 iPhone 的也用上更大內存,擁有更快快閃記憶體速度,於是在 iPhone 6S 成功搭載 2GB 內存后,新的機制出現了—暫縮機制。

什麼意思呢?如果一個 App 退出了。閑置了 10 min,它在活動時仍佔用 RAM 空間,不過會被壓縮。一旦活動減緩,它就會被轉儲到內部存儲中,一旦用戶再使用這個 App,那麼就立即調用轉儲文件,立即擴展內存空間給這個轉儲文件,程序完成運行。

而一旦超出預定時間,有後台需要的 App 會自動壓縮進內存,沒有的將會被完全轉儲或者退出。而預定時間以內,這些打開的 App 都會以打開順序自動壓縮進入內存,當內存空間將滿的時候,從負載小的軟體起開始轉儲,等打開時再載入入內存,同時壓縮負載大軟體,直至到極限,然後退出。(不轉儲)這個轉儲的過程比較快,大概耗時 0.1s~2s(根據設備性能以及 App 大小決定)當轉儲文件一旦被刪除以後,App 內的已壓縮內存就會被釋放,同時重新打開這個 App,要求其恢復原有狀態(若可以的話)這就是俗稱的殺後台了。

值得一提的是,設備閑置過長時間,只會暫存打開的 App 而已。另外,iPhone 用的 NAND 和協議都要比同期安卓機器好很多,包括內存頻率。而且現在eMMC 和 UFS 差距還是比較大的,尤其是快閃記憶體門事件又引發了關注。

當然,安卓機現在的運存不斷飆升,已經快趕上電腦的水準了,如努比亞Z17和一加5,都用上了8GB的運存。

因為Android 的內存調度比 iOS 要寬鬆,進程即便進入後台也有活躍的機會,這使得 Android 成為了真正意義上的多任務操作系統,而 iOS 對於一切後台應用都有嚴格的限制,超過允許的活躍時間后就會被凍結,不再分配 CPU 時間。

另外,系統流暢度與內存沒有直接關係,不是說內存大系統就流暢,安卓手機之所以在低內存時容易卡頓,更多的是因為進程由於內存不足被釋放又按需重建的原因,國產應用又擅長鏈式啟動,這種頻繁釋放內存然後又同時鏈式啟動才是造成系統卡頓的真兇。而 iOS 就壓根不允許鏈式啟動這件事發生,只有用戶點擊了 SpringBoard 上的圖標,相應的 app 進程才會真正啟動,這也就保證了在有限時間內,同時佔用 CPU 的進程有限。

Android 由於系統架構的原因(不能說這種設計不好吧,個人覺得這樣還是很靈活的,給開發者足夠的想象空間),Service、BroadcastReceiver、Content Provider 這幾個組件允許被不同進程相互調用,這也給國產廠家鑽空子的機會,假設一個 app 同時調起了 5 個其他 app 的 Service,那麼同時就會有 5 個進程佔用 CPU 時間,這肯定會造成卡頓。要怪也不能怪系統設計,還是開發者(商)自己不自覺。

而為什麼要用 8 GB 內存呢,既然環境如此,越大的內存雖然效果不顯著,但也不至於 make it worse,而且在數據上還能好看一些,再加上 RAM 本身也不貴,所以很多廠商肯定就選擇更大的內存了,儘管這確實沒什麼卵用。

最後敲黑板說重點,內存與流暢度無直接關係,有間接關係但原理不是很多人說的那樣。

以上內容版權歸奇客智能「GeekSmart」。奇客智能是媒體訓練營新媒體團隊運營,專註數碼產品、人工智慧、智能智造等領域的新媒體品牌,轉載請聯繫授權。歡迎關注此號、在評論區留言吐槽。



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦