造成Android手機卡頓的原因 - 手機討論

Table of Contents

※ 引述《plzza0cats (515ㄚㄚ)》之銘言:
: ※ 引述 《ezJapan (Japan)》 之銘言:
: :  
: : https://i.imgur.com/0WPgN28.jpg
: :  
: https://i.imgur.com/foQG0f9.jpg
: 手機剛買12天
: 12Ram沒想到沒什麼用
: 剩下2.6G可以用
: 是系統更新吃太多嗎?...
: 很難想像三年後會多卡==
: 我覺得安卓缺點就是記憶體分配很奇怪
: 不然其他都蠻優秀。

其實推文中已經有網友給出正解
zram用簡單但不精確來說就是把swap設置在ram disk上面
安卓很早就不再使用磁碟的swap了
swappiness是設置當記憶體剩下多少時才要開始用swap
對於系統上來看zram就是真正"已經"被吃掉的記憶體

舉一個簡化的例子來說一台10gb的安卓設備
系統本身吃掉2gb,剩下8gb ram又開了4gb zram
這時候等於已經用掉了6gb ram,剩下了40%可以用
假如設置的swappiness是90%。就是剩下的4gb ram用掉3gb後
就開啟swap,這時候你的zram吃掉的記憶體就變成swap來工作
這樣做的好處是zram都經過LZ4壓縮法,他實際效益比4gb大
只是會耗損掉一些效能

所以zram該開多大得看你的使用場景
如果你的記憶體不存在不夠用的問題
完全不使用zram其實效能還會更好
雖然有些特殊狀況測試會跟你說zram甚至比原本來得更快
例如記憶體大量搬移,zram經過壓縮搬來搬去當然更快
記憶體不足那開啟zram就增加程式的保留度跟可執行性
如果覺得寧願被退掉程式也不想要減損任何效能zram就一點都不要開

如果安卓手機廠商都遵循Google建議
8gb ram以上機種會開3-4gb zram,而swappiness會設置在60%
所以開機後剩下不多的ram其實不是真正被用了只是被zram佔去

--

All Comments

Linda avatarLinda2021-04-17
推!
Hedy avatarHedy2021-04-21
大師
Puput avatarPuput2021-04-25
swappiness值90是指「剩下90%空間就開始用ZRAM」
Quintina avatarQuintina2021-04-30
這麼高的值反而會很破壞效能 因為現在ZRAM都經壓縮
John avatarJohn2021-05-04
Okay 也可能我記反了。這個值一般也不太去調
Lydia avatarLydia2021-05-09
google預設60嚴格說來是因為過去手機RAM一直都短缺
Blanche avatarBlanche2021-05-13
小於4G或2G的RAM以目前應用來說swap採ram-disk有利
Sandy avatarSandy2021-05-18
但現今動不動就8G RAM起跳 其實連SWAP都不需要了
Mason avatarMason2021-05-22
ZRAM最有話題性大概是安卓4.0左右的時期
Franklin avatarFranklin2021-05-26
當時手機RAM普遍2G以下 ROM還在emmc
Lydia avatarLydia2021-05-31
比起讓swap去讀寫還在幾十MB/s就偷笑的ROM
Robert avatarRobert2021-06-04
直接耗CPU壓縮/解壓縮記憶體內部資料反應要快得多
Doris avatarDoris2021-06-09
跑DB的伺服器會建議swappiness設為0。不過終端設備我傾向於不需要這麼極端。SWAP作為調控RAM的手段,在大多數場景還是適用的。就算你有8G RAM你還是不會希望背景app一旦記憶體吃緊就被OOM kill的
Enid avatarEnid2021-06-13
有8G還會被砍背景的極端情況 zram幫助大概也不大了
Charlotte avatarCharlotte2021-06-18
主要是ZRAM壓縮率不大 否則壓縮解壓縮的耗能和延遲
Ursula avatarUrsula2021-06-22
還比幾百MB/s的UFS直接讀寫還慘時就本末倒置了
Skylar Davis avatarSkylar Davis2021-06-26
手邊某機種某次更新後swappiness=90根本計畫性汰舊
Skylar Davis avatarSkylar Davis2021-07-01
所以原來記憶體有zram機制 難怪我什麼app都沒開就吃一半所以我8g記憶體用這功能反而減少效能
Dora avatarDora2021-07-05
那有沒有什麼辦法關閉它
Andrew avatarAndrew2021-07-10
RAM維持吃一半以上在Linux很常見 不見得是ZRAM造成
Brianna avatarBrianna2021-07-14
device info之類APP可以看到zram狀態
Andy avatarAndy2021-07-19
sony 開源的 device tree 是設定 25
Emma avatarEmma2021-07-23
swappiness值設定恰當的話對效能影響不大 例如設20
Michael avatarMichael2021-07-27
ram使用率80%前不會動用swap自然也不會用到zram
Annie avatarAnnie2021-08-01
計畫汰舊設到90的基本上效能之前續航就非常有感差
Emma avatarEmma2021-08-05
https://tinyl.io/3uNv Pixel5/4a5G是100
Isabella avatarIsabella2021-08-10
高wappiness代表積極用swap,占用cpu拖慢速度,ram大的手機越明顯,等於0也不代表關閉swap,反正都是為了避免殺後台做出的取捨
Skylar DavisLinda avatarSkylar DavisLinda2021-08-14
manbow77,你說的被設定 90型號可以透露一下嗎?
Agnes avatarAgnes2021-08-19
U-3u 倒數第二次更新時swappiness190(系統取90)
Ethan avatarEthan2021-08-23
該版本swappiness值被鎖權限 要root才看得到
Poppy avatarPoppy2021-08-27
後來最終更新有無變動不知道 那時我刷三方ROM了
Delia avatarDelia2021-09-01
剛剛去下了device info,好像沒看到相關設定不過我手機沒root還是說要root才看得到
Rosalind avatarRosalind2021-09-05
https://i.imgur.com/fPZHeDx.png devcheck
Rosalind avatarRosalind2021-09-10
如果沒顯示zram 表示手機沒有設zram或關閉swap
Edward Lewis avatarEdward Lewis2021-09-14
有了原來是我原本載的那個APP太廢
Una avatarUna2021-09-19
https://i.imgur.com/mSqzcdU.jpgzram要不要關掉
Skylar Davis avatarSkylar Davis2021-09-23
優文,推個
Mia avatarMia2021-09-27
稍微糾正一下觀念 ZRAM只是swap的一種形式
Frederic avatarFrederic2021-10-02
而SWAP的存在主要是預防實體RAM吃緊造成的崩潰
George avatarGeorge2021-10-06
Windows上的虛擬記憶體應該很熟悉 那也是swap概念
Vanessa avatarVanessa2021-10-11
所以保留後台之類ZRAM並無法有效改善 會被砍的照砍
Hedwig avatarHedwig2021-10-15
所以了解swap意義後應該會發現關鍵在swappiness值
Frederic avatarFrederic2021-10-20
理想狀態下 RAM剩餘空間還很有餘裕就不該使用zram那根本脫褲子放屁
Charlie avatarCharlie2021-10-24
吃的好多r https://i.imgur.com/pKUeVlv.jpg