※ 本文轉寄自 ptt.cc, 文章原始頁面
標題

Re: [問題] 造成Android手機卡頓的原因

時間
留言54則留言,11人參與討論
推噓9 ( 9045 )
※ 引述《plzza0cats (515ㄚㄚ)》之銘言: : ※ 引述 《ezJapan (Japan)》 之銘言: : :   : : https://i.imgur.com/0WPgN28.jpg
Re: [問題] 造成Android手機卡頓的原因
: :   : https://i.imgur.com/foQG0f9.jpg
Re: [問題] 造成Android手機卡頓的原因
: 手機剛買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佔去 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.24.108.33 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/MobileComm/M.1618210747.A.0F1.html

54 則留言

haveastar, 1F
推!

plzza0cats, 2F
大師

manbow77, 3F
swappiness值90是指「剩下90%空間就開始用ZRAM」

manbow77, 4F
這麼高的值反而會很破壞效能 因為現在ZRAM都經壓縮

dodorododoro, 5F
Okay 也可能我記反了。這個值一般也不太去調

manbow77, 6F
google預設60嚴格說來是因為過去手機RAM一直都短缺

manbow77, 7F
小於4G或2G的RAM以目前應用來說swap採ram-disk有利

manbow77, 8F
但現今動不動就8G RAM起跳 其實連SWAP都不需要了

manbow77, 9F
ZRAM最有話題性大概是安卓4.0左右的時期

manbow77, 10F
當時手機RAM普遍2G以下 ROM還在emmc

manbow77, 11F
比起讓swap去讀寫還在幾十MB/s就偷笑的ROM

manbow77, 12F
直接耗CPU壓縮/解壓縮記憶體內部資料反應要快得多

Segal, 13F
跑DB的伺服器會建議swappiness設為0。不過終端設備

Segal, 14F
我傾向於不需要這麼極端。SWAP作為調控RAM的手段,

Segal, 15F
在大多數場景還是適用的。就算你有8G RAM你還是不

Segal, 16F
會希望背景app一旦記憶體吃緊就被OOM kill的

manbow77, 17F
有8G還會被砍背景的極端情況 zram幫助大概也不大了

manbow77, 18F
主要是ZRAM壓縮率不大 否則壓縮解壓縮的耗能和延遲

manbow77, 19F
還比幾百MB/s的UFS直接讀寫還慘時就本末倒置了

manbow77, 20F
手邊某機種某次更新後swappiness=90根本計畫性汰舊

Sinreigensou, 21F
所以原來記憶體有zram機制 難怪我什麼app都沒開就

Sinreigensou, 22F
吃一半

Sinreigensou, 23F
所以我8g記憶體用這功能反而減少效能

Sinreigensou, 24F
那有沒有什麼辦法關閉它

manbow77, 25F
RAM維持吃一半以上在Linux很常見 不見得是ZRAM造成

manbow77, 26F
device info之類APP可以看到zram狀態

abc0922001, 27F
sony 開源的 device tree 是設定 25

manbow77, 28F
swappiness值設定恰當的話對效能影響不大 例如設20

manbow77, 29F
ram使用率80%前不會動用swap自然也不會用到zram

manbow77, 30F
計畫汰舊設到90的基本上效能之前續航就非常有感差

abc0922001, 31F
https://tinyl.io/3uNv Pixel5/4a5G是100

square4, 32F
高wappiness代表積極用swap,占用cpu拖慢速度,ram大

square4, 33F
的手機越明顯,等於0也不代表關閉swap,反正都是為了

square4, 34F
避免殺後台做出的取捨

athraugh, 35F
manbow77,你說的被設定 90型號可以透露一下嗎?

manbow77, 36F
U-3u 倒數第二次更新時swappiness190(系統取90)

manbow77, 37F
該版本swappiness值被鎖權限 要root才看得到

manbow77, 38F
後來最終更新有無變動不知道 那時我刷三方ROM了

Sinreigensou, 39F
剛剛去下了device info,好像沒看到相關設定不過我

Sinreigensou, 40F
手機沒root還是說要root才看得到

manbow77, 41F
Re: [問題] 造成Android手機卡頓的原因

manbow77, 42F
如果沒顯示zram 表示手機沒有設zram或關閉swap

Sinreigensou, 43F
有了原來是我原本載的那個APP太廢

Sinreigensou, 44F
Re: [問題] 造成Android手機卡頓的原因

Sinreigensou, 45F
zram要不要關掉

Dino14124, 46F
優文,推個

manbow77, 47F
稍微糾正一下觀念 ZRAM只是swap的一種形式

manbow77, 48F
而SWAP的存在主要是預防實體RAM吃緊造成的崩潰

manbow77, 49F
Windows上的虛擬記憶體應該很熟悉 那也是swap概念

manbow77, 50F
所以保留後台之類ZRAM並無法有效改善 會被砍的照砍

manbow77, 51F
所以了解swap意義後應該會發現關鍵在swappiness值

manbow77, 52F
理想狀態下 RAM剩餘空間還很有餘裕就不該使用zram

manbow77, 53F
那根本脫褲子放屁

qqshiang, 54F
Re: [問題] 造成Android手機卡頓的原因