• 6

簡單解釋 Android 對於 RAM 的使用方式

後續回信來了,一樣貼在這邊分享一下。




文中有談到auto killer與其他記憶體管理程式的關係,
係因為先前看過app安裝建議之類的雜誌,
有下載app monster free(backup app用)、然後app monster又建議要下載 android 管理大師
鑒於第一次用smart phone,無知+求好心切,就真的給他下載(大約購買後第7日安裝),什麼一鍵起飛、記憶體最佳化,使用後到第2周止(陸續用了2、3次),

系統記憶體頻繁出現:已用佔1.4G以上、各程式不斷重新啟動中;可用部分僅剩下200mb,然卻沒看到多少快取程式。相關遲滯現象就如同前信所言。
後續於兩週後受不了,進行第一次重新開機的動作,其後,真的就順了
但因為尚未知系統遲滯的元兇,重開機後還是有用過android 管理大師,慢慢的、逐次的,同樣的問題又浮現。

這類東西比較像是從 Windows 傳過來的習慣,不管是 Android 還是 iOS 都有人習慣這樣搞。
iOS 原則上它比較封閉,所以很多後台常駐跟服務是不會讓你看到的。
能看到的大概就跟 Android 裝置按下多工切換後列出的那些使用者自行開啟的程式差不多。
Android 就比較開放,除了在"設定→應用程式"那邊就能讓你看到不少東西以外,使用第三方管理程式還能看到更多,使用者心理上就會開始擔心 RAM 的問題...




後來求助於mobile01,就發現您的優質文章(真的很感謝您寫文章是如此用心!)
一系列拜讀後,看到http://www.mobile01.com/topicdetail.php?f=569&t=2444782
內文有建議安裝AutoKiller Memory Optimizer,在不想重開機的情況下(很想永遠不作關機、開機的動作),想求助於軟體修正,所以也下載了嘗試使用,卻犯了沒有仔細看清楚您文內所提的相關前提。
最後還是重開機了!(開機前刪除這些記憶體管理程式了,經過 清除資料 → 清除快取 → 解除安裝 等程序),重新開機後,不再執行任何記憶體管理程式,目前為止都非常順!

結論(可能有誤):
使用這些軟體像是毒藥,一次不會有太多影響,但是執行多次後會累積系統傷害,逐漸造成系統遲滯,此外,auto killer比較猛,用了2次後短時間內(2日)就系統發作。

AutoKiller Memory Optimizer 比較不算第三方干涉,它只是修改系統預設的記憶體釋放條件,其後的 switch 作業還是系統本身在做。

比如說,Android 4.3 裡對於 Empty APP 的釋放下限是"當閒置 RAM 低於 120 MB 時"
我們測試一個新程式,且它的記憶體佔用量大於起始值的 8 MB。

現在的閒置 RAM 有 140 MB - 開啟新程式後 = 132 MB → 程式需求往上增加 192 MB → (*)系統開始釋放記憶體 → 空出 192 MB 給新程式擴增 → 系統繼續釋放直到閒置 RAM 達到 Empty APP 下限的 120 MB。
140 - 8 = 132 → (*)132 + 60 = 192 → 192 - 190 = 0 → 0 + 120 = 120

現在用 AutoKiller Memory Optimizer 把 Empty APP 的釋放下限改成 256 MB。
當下的閒置 RAM 有 270 MB - 開啟新程式後 = 262 MB - 程式需求往上增加 192 MB = 剩餘 70 MB,系統開始釋放直到閒置 RAM 達到 256 MB。
270 - 8 = 262 → 262 - 192 = 70 → 70 + 186 = 256

可以發現步驟不一樣了,對於系統工作排程來說後者比較不會忙成一團亂。
但這有個利弊...(我也是以前有用了一段時間後才有感受 XD)
1.
前者,雖然系統收到要求後進行了第一次 switch,之後又要馬上進行第二次 switch,但兩次的工作量都不大,60 + 120 而已,CPU 很快就可以完成 switch 作業,你可能等待時間是先 0.1 秒,過一段時間後再 0.2 秒。
後者,只進行一次 switch,但是一次就要 186,等待時間可能一次就要 0.3 秒,又剛好是你在操控前台的那段時間,因為時間比較長使用者就比較能感受到Delay了。
2.
當 Empty APP 的釋放下限在 120 MB 時,我的快取區裡可能可以存放 5 個程式待我隨時喚醒,這 5 個可能剛好就是我常用的。
而當把 Empty APP 的釋放下限改成 256 MB 後,相對會壓縮快取區的大小,這時的快取區只能存放 3 個待命程式了。
我又很喜歡拍照,常常會開啟圖庫,因為圖庫常常被擠出快取區,5 次裡有 3 次它不在快取裡,非快取喚醒的重新啟動要讓它讀取上萬張照片,我必須等個快 10 秒讓它讀完才能去找我要 share 出去的圖...

這真的就是一把雙面刃,會依照使用者習慣有好的一面也有壞的一面。
我就是很常使用手機,常用 APP 也一大堆,那麼用 AutoKiller Memory Optimizer 去修改釋放下限就不適合我。




請益您
問題1:使用這些記憶體管理軟體,為什麼不能在使用一次後,後續不再使用時,系統自己重整至最佳化狀態,而是不段維持已遭記憶體管理程式傷害之不佳狀態(伴隨屢次開啟記憶體管理程式而每況愈下),最後僅有移除後重新開機,才能解決問題?(感覺記憶體管理app,就像是可移除的病毒)

這類東西很多都需要 ROOT,表示有對系統產生更動。
而不需 ROOT 就能執行的,當然就會有「不完全」的問題。
我是傾向於輕鬆使用,不想給自己找麻煩,所以都完全不用這類東西。




問題2:一些APP掛載提醒功能,就會常駐在背景中(已用ram),倘若在該app中重新設定關掉提醒功能,卻看到仍在常駐背景中執行,是否僅有在重開機的動作,能完整refresh記憶體呢?(像是喝水寶、健身訓練等app)

在 RAM 裡也有分位置,要看它是在後台長駐服務區(像 WhatsApp、LINE),還是閒置程式快取區。
有些程式甚至本身就寫的不是很嚴謹,就算把提醒功能關掉,丟到後台時它還是把自己歸類在長駐服務,而不會跳去快取區。
這時就會造成後台長駐服務區被加大,相對就壓縮了快取區的大小。
但這不會"直接影響"系統運作流暢度,而是讓快取區變小後能存放的快取程式變少而已,該 switch 的時候還是要 switch。




問題3:關於所有記憶體管理程式,已經不會想在用,另外請問安兔兔裝置測試app,在測試前有系統優化的選擇,這是否也建議不使用呢?現在看到系統優化就一整個感覺很差。

AnTuTu 的我沒用過,不過我想那應該是差不多原理。
只是先把系統優化來達到最佳的測試跑分結果,會對系統運作產生影響是之後的事。(殘留的遺毒?)




問題4(已脫離ram討論範疇,抱歉):完整移除程式是否就是於應用程式資訊中:清除資料 → 清除快取 → 解除安裝;另外裝置記憶體中,號稱16G的Z1,僅有11.8G顯示於應用程式中,請問我至少該剩下多少比例,會讓系統運行維持在順暢的狀態。(個人有使用SONY 內建的 MagV BookU下載了許多jpg檔的雜誌,檔案挺大)

完整移除程式其實只要直接按解除安裝就可以了,但有些程式未必會連下載回來的快取檔案一起刪掉,保險一點是資料跟快取都清掉後再移除沒錯。

一般稱的那 16 GB 儲存空間是用 1000 的單位來計算的,不是真正的 1024 在計算。
用 1024 來換算後大約是 15 GB 左右,再扣掉一些不會讓你看到的檔案空間。

FLASH 空間的話...以前確實有剩餘容量越少會拖慢系統運作的問題(是 Android 本身的原因),現在已經不會了。
大概只要別低於 1 GB 都不用擔心,因為低於 1 GB 開始後會跑出容量快滿的提示訊息在通知列很煩 XD
風景映像。 https://yushenghsu.com
寫的太棒了!

請教一下,像NOTE3的RAM有3GB,是不是就不要擔心記憶體塞了多少APP,儘管用就是了??


Tsubasa~翼 wrote:
後續回信來了,一樣貼...(恕刪)
很棒,很實在的分享。

請問 以使用者體驗來說,增加RAM與提高APU的規格,那一個比較明顯?(2GB->3GB or Qualcomm 800->805)
Tsubasa~翼 wrote:
因為不少人對於為什麼...(恕刪)
gary1587 wrote:
請教一下,像NOTE3的RAM有3GB,是不是就不要擔心記憶體塞了多少APP,儘管用就是了??


davidyeh2006 wrote:
請問 以使用者體驗來說,增加RAM與提高APU的規格,那一個比較明顯?(2GB->3GB or Qualcomm 800->805)


RAM 不管多或少,用了一段時間後都會到達約 95% 的飽和狀態。
到達飽和後不管是 1 GB 還是 3 GB,都要做switch的動作。
但是 RAM 多的一方能存放更多快取在裡面,使更多常用程式能即時存取。
如果使用者常用的程式剛好都能全部放在快取裡,那就不需做switch的動作直接使用快取,相對的使用體驗上就更順暢。

但 RAM 也有分等級,也就是一般常稱的 DDR、DDR2、DDR3。
不過 RAM 本身的存取速度就已經非常快速,所以等級不同造成的匯流排傳輸差異不太容易感覺得出來。

可是 CPU 的處理效能跟 I/O 演算性能的差異就比較容易讓使用者感受出差異了。
只是 S800 跟 S805 可能差異不大,用來應付目前 Android 系統的資料處理都相當有餘。
有可以看到 CPU info 之類的程式可以去觀察一下,要全核跑到 100% 處理的機會非常少。
若是 APQ8064 跟 S800 來比較的話,單就同樣的 ROM (比如說 PA 3.99+)跟同樣的內核(都用最新的 FK),在做switch時的速度是感覺得出差異的。
差異不大就是了...因為 I/O 演算法主導的差異更大w



也就是說...

普通 CPU + 大量的 RAM
= switch時間雖長但次數少,多數時間使用快取。(不過 CPU 也是會影響大型程式處理效能的)

高速 CPU + 少量的 RAM
= 雖然switch次數多但時間短。(同時在運行大型程式考驗 CPU 能力時也有較好的流暢度)
風景映像。 https://yushenghsu.com
也先佔個位置,剛入手nexus5,日後相信會有所更進一步多了解⋯⋯
~~龜派門徒==>新台幣樂園==>八 元~~ ★★☆
版大講的很詳細 還是有些疑問
在執行中的服務可看到很多app在常駐 是不是代表說每個常駐的app目前就是在背景執行的 有正在耗用CPU 增加CPU使用率 越多常駐的app CPU 使用率就越高 所以手機就會越慢 所以就想要root 之類的將常駐程式關閉
努力看、努力吸收中.......!

非常好的一篇文章,感恩!
讓我記憶一下~
跟我想得一樣~
CPU不夠力問題比較大~
認真看好久,但還是不太理解!我m8用不到一個月真的沒抓什麼程式,但幾乎每隔一天它就開始卡卡,還是大卡逼的我一定要重新開機才會恢復正常我想應該是ram不足倒置!到底該怎麼辦???
jvc14014 wrote:
版大講的很詳細 還是有些疑問
在執行中的服務可看到很多app在常駐 是不是代表說每個常駐的app目前就是在背景執行的 有正在耗用CPU 增加CPU使用率 越多常駐的app CPU 使用率就越高 所以手機就會越慢 所以就想要root 之類的將常駐程式關閉

在背景常駐不一定耗 CPU 資源。

打個比方就像...
Chrome:網頁載入中被丟到後台,那他依然在運行中(使用 CPU),直到網頁載入完畢(不使用 CPU)。
LINE、WhatsApp:後台待命接收訊息(偶而使用 CPU)。
快圖瀏覽:看完圖或翻到一半被丟到後台(不使用 CPU)。

所以也是要看該程式類型是什麼?並不是常駐就一定在占用 CPU。
像目前 LINE 的通訊頻率比較低了,不像以前三不五時就連線伺服器吃流量吃 CPU。
Facebook 以前也是拼命同步,現在也大幅改善,那就相對也就降低了 CPU 與 網路 的使用。



顏小蘋 wrote:
認真看好久,但還是不太理解!我m8用不到一個月真的沒抓什麼程式,但幾乎每隔一天它就開始卡卡,還是大卡翻桌逼的我一定要重新開機才會恢復正常嘆氣我想應該是ram不足倒置!到底該怎麼辦???

若 M8 也會發生嚴重 Delay 的問題...我想比較有可能是某個 APP 本身有問題。
(畢竟以 M8 的規格來說...不太可能!)
如果可以,我會建議還原原廠狀態,只登入 Google 帳戶,維持最基本的同步、收發信件、簡訊、通話。
先不要安裝任何第三方 APP 使用看看?
在這種狀態下沒問題?那就先裝回比較重要的幾個 APP 看看,依序去排除找出是哪個 APP 在作祟。
風景映像。 https://yushenghsu.com
  • 6
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?