TIMBOYHU wrote:
首先感謝各位的說明你...(恕刪)
我針對「RAM會神秘消失」的現象回覆。
Android目前針對程式的RAM分配方式如下:
1.啟動時分配 8 MB
2.向上展開每次 64 MB
也就是說,當APP啟動時他會先佔用 8 MB,如果需求增加,每次分配 64 MB 直到需求滿足。
現在...Android系統啟動到完全靜止狀態,假設占用了 1 GB 的RAM,剩下 1 GB。
這 1 GB 是指「所有」基本狀態完成待命。
但要注意,主系統、元件、鍵盤、通訊、無線...這些其實都是各別的APP且為系統常駐化。
當使用一段時間(A)後,不論是系統內建的關閉所有程式,還是第三方APP的強制KILL。
能關掉的都是使用者程式,而非重要的系統程式。
這時清除記憶體後會發現只能清到 1.2 GB / 0.8 GB。
差異的那 200 MB哪去了?因為你在無形中就使用了非常多的系統元件。
系統有在運作、你有用鍵盤打字、通訊也有在跑、下載管理員也有在運作...
這些動作都會改變程式的記憶體需求,需求增加自動 + 64 MB,低於需求自動 - 64 MB。
也就是說「只要程式有在運行,他的RAM需求就隨時在變動」。
但因為他們是系統常駐化而無法被關閉(否則會造成崩潰),甚至看不到(元件、通訊、無線)。
所以當你按下(X)的時候會發現清完的剩餘記憶體比剛開機時少,這是正常現象。
除非你重開機,讓「所有程式」都回到剛載入完的初始狀態。
Windows、iOS、OS X剛開機完,跟使用了一個禮拜後關閉所有程式,剩餘的記憶體也不會一樣啊...
風景映像。 https://yushenghsu.com
pineman wrote:
我的Linux有8GB RAM,我也沒跑什麼,結果只剩下1.28GB左右,真是太可怕了。
total used free
Mem: 8083836 6805368 1278468
其實我裁掉了右半段,詳細是
total used free shared buffers cached
Mem: 8083836 6805368 1278468 401488 312360 3898776
也就是說,那個 free 是指目前完全沒被指派用途的。並不是全部都是執行中的程式用掉的。
你裝一堆RAM,不讓OS指派用途,不是很奇怪嗎?重點是你的系統是否有因為顯示記憶體變少開始踢程式(在我的Linux是會開始swap,我設成只要有ram可用就不要swap,連swap都滿了才開始踢程式),沒有就別瞎擔心了。
其實 free 打下去會出現三行,不會只有你寫的第一行:
total used free shared buffers cached
Mem: 725 666 59 0 132 287
-/+ buffers/cache: 245 479
Swap: 996 0 996
真正的 free mem 要看中間那行 -/+ buffer/cache 的部分,也就是我標成紅色的部分。第一行的 59 + 132 + 287 會等於紅色的數值,在這邊是 478 與 479,應該是進位差。
所以要看真正系統可隨時運用的記憶體,直接看第二行最後一個數字,也就是我標成紅色的那個數字就可以了。
bulibi wrote:
其實 free 打下去會出現三行,不會只有你寫的第一行:
total used free shared buffers cached
Mem: 725 666 59 0 132 287
-/+ buffers/cache: 245 479
Swap: 996 0 996
真正的 free mem 要看中間那行 -/+ buffer/cache 的部分,也就是我標成紅色的部分。第一行的 59 + 132 + 287 會等於紅色的數值,在這邊是 478 與 479,應該是進位差。...(恕刪)
因為第三行還要多排版一行(你可以看我都有用全形空白排版),且對樓主的問題沒有幫助,因為他在意的是 free,第三行之後和標示為free(樓主所認知的可用記憶體)的沒有直接關係,所以我就忽略了。




























































































