顯示廣告
隱藏 ✕
※ 本文為 dryfish.bbs. 轉寄自 ptt.cc 更新時間: 2011-11-16 11:12:21
看板 Android
作者 gpc (gpc)
標題 Re: [討論] 別再盲目迷信工作管理員了...
時間 Sun Oct 30 03:51:33 2011


關於這問題我以前已經有做專業分析了,請在版上按a -> gpc 可以搜尋我之前的文章

不過上次分析不夠詳細,剛好又遇到,再來說一下,有緣人可以參考XD


畢竟記憶體要講的話沒完沒了,而且有點專業,一般除非你在做android手機才有必要

不過既然提出來了,還是稍微說一下好了,我只講大概,不講code
------------------------------------------------------------------
[ANDROID 記憶體清理機制]
android目前基本上有內建兩套記憶體處理機制 (2.2之後)
1. lowmemkiller, 這東西從很久以前的1.0就有了
這東西是由"內核"所控制,他會根據init.rc所設進去數值搭配上層AMS.java的adj做調整,
他的行為大概就是,如果你的記憶體低於某個"閥值",他就會開始砍程式,
而且是那種暴力的,就像你強制關閉程式一樣,至於他會砍甚麼程式,有很複雜的規則,
總之就是會砍...至於這個"閥值"是多少呢?他有針對不同adj做設定,

你如果有興趣,我記得有些ROOT的軟體可以調整或查看,他會說明

或者你可能會刷些第三方的ROM,他會說"我有記憶體優化",一般就是去調init.rc裡面數值
這個數值調整之後,可以有些效果?調越高,就天天殺,狂殺猛殺,剩餘記憶體數值好看.

我個人是沒習慣再弄這個.因為他有點爆力.殺人不目乏眼.而且不是用API殺,所以殺很快.

2.AMS.java裡面的自清機制,
這個機制是新功能,記得是2.2之後才有的,google大概知道記憶體太少不好看,所以他
裡面有段程式會把你沒再跑的程式砍掉,但很可惜的,他會累積一個程度再砍,預設是15個
很可悲的事情是,一般如果你RAM少的機子,還沒撐到15個就炸了.

3.你安裝的第三方"任務管理器"
你安裝的第三方任務管理器,大部分要配合非ROOT的機子,
所以都是用API(Google提供的標準函式),來殺程式,
用API來殺程式,效果差,速度慢,而且殺了有時候程式還會自己再出來.
所以用非官方的是有可能一天到晚在那砍砍殺殺的,很麻煩.

------------------------------------------------------------------
[到底要不要做清理記憶體的動作?]
姑且不提那些專業的東西,其實你要知道一個重點來決定要不要安裝第三方任務工具
那就是你的RAM裡面到底有多少東西會跑起來?還有你的RAM有多大?

(A).如果你的機子RAM是1G以上,如原PO所敘基本上是不用靠第三方,
只要靠著前面說的1.2兩個機制就沙很大了


前提是你要看你的機子"預載"的東西多不多,如果你是GOOGLE版(CMx),
裡面幾乎沒什程式,這種情況當然沒有必要殺

但如果你是HTC官方的,一開機就跑一堆鬼怪東西,或者有特殊功能的機子(如3D,指紋)
這些功能的啟用都會佔額外的記憶體,而且是必要的,所以還是得觀察一下剩餘量

大體判斷方式 開機剩餘RAM >250MB,就不需要額外清,更低的話就看你的記憶體狀態.

注意一點!不是你安裝的多就記憶體用的多,你必須看你安裝軟體的性質.

但你一般不夠專業,沒辦法一眼看出來,所以直接裝個任務管理器,
觀察機子剩餘的數值比較準確一點囉!

原則上 1G RAM的 都不需要特別清

(B)RAM 512MB
這有點尷尬,要清不清的,跟上面情況一樣,看剩餘囉!
但因為512MB,扣掉底層的,加內建的用一用就有點拮据了,所以一班都會建議要清一下

----------------------------------------------------------------------
[到底記憶體多少才算低?會影響到我的操作呢?]
這邊有點不准,基本上記憶體多少才算低呢?首先你必須知道一個程式大概吃多少記憶體.
由於ANDROID是用"模擬器"的機制,所以就算你的程式超簡單,一片趣黑,一開起來,
就會吃個15MB up,稍為複雜點的,都25MB起跳,兇狠一點的,四五十MB也大有人在
也就是說你至少得確保你跑程式的時候,剩餘的空間有個50MB吧!
如果要操作順暢,就不能只有50MB剩餘量,你想想看,我剩下50MB,一開程式吃了50MB,
可能記憶體就歸零了,歸零之後,前面說的清理機制就會啟動,
就開始砍砍殺殺,你就開始卡了.所以安全要求應該要翻個倍吧,就是100MB左右
100-50=50還是有50,退出程式後,又回到100,如果不小心吃過頭,還有個20~30

平常用高檔機子的人可能沒什感覺,但像我最近用LG 3D 超冷門的機子
他的RAM只有512MB,重點是他內建的"芋仔"太多了,3d的那些,一狗票,

加上我又有用whats app,臉書,gmail什的,一開機真的有點拮据,常常都是在70~90MB,

這時候得真的要清一下,不然偶而就給你卡,有點讓人火大.

透過超級管理器的自動清理,我都設90MB,低於90MB就會自動清,所以感覺上蠻方便的,
不設的話,就會吃到剩下四五十,然後內建的機制才啟動,
可悲的是在啟動之前,早就卡翻天了
-----------------------------------------------------------------------
[為什麼記憶體會導致卡?]
記憶體不夠不會導致卡,會卡的原因是系統正在清理或是被清理的人不甘心又活過來,
他在活過來的同時,CPU就得花時間去處理他們的運算,如果CPU不猛或運算太激烈,
當然你就會卡卡的.所以一般來說我建議如果你要用記憶體工具,一定得設"例外"清單

!!!!那些會活過來的 麻煩一定要設一下例外,因為你砍了他也會活!!!!

你可能會說我哪知道誰會活呢?很簡單的,只要砍砍看,再觀察一下就知道囉

那些會活過來的東西,你得先確定他是甚麼,不需要的話可以移除或停用(ROOT)
剩下的可能是系統必要的建議設成例外吧! 免得他常常死而復生 拖慢你的系統速度.

可惜現在很多人都有點懶惰,不想設例外...

-----------------------------------------------------------------------
[結論]
1.要用記憶體工具,一定得設例外,死而復生類的記得標一下
2.RAM 1GB up, 高階機種,想清不清都可以,清了沒壞處,不清也沒差
3.RAM 512MB,中階機種,可換"純GOOGLE"版ROM(CM7),就不用特別清,
  如果用原廠的,得觀察下記憶體消耗程度,是否有原廠大量的東西存在,
  一般還是得清一下,不用手動清,可以找些有關畫面或自動清的閥值軟體來用
4.RAM 256MB,阿?這種機子建議還是換機吧,因為會搭256的機子,CPU估計也很陽春,
  不然你就當一般手機用好了,別裝軟體.


--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.44.7.116
※ 編輯: gpc             來自: 114.44.7.116         (10/30 03:52)
gpc:我的閥值一直都打錯字...1F 10/30 04:00
salee:有緣人可以參考XD2F 10/30 04:05
gpc:這一篇文章值 542 Ptt幣3F 10/30 04:09
niuniucat:專業推...但這年頭太專業容易讓人忽略XDD4F 10/30 04:13
salee:我有很認真看完!!!!5F 10/30 04:22
wayne0411:淺顯易懂!!!6F 10/30 04:55
greenadi:ss的ram算在哪種阿XD7F 10/30 04:55
oiio0971:推樓上XD  沒刷ROM的SS算...?8F 10/30 05:00
threedices:大推...9F 10/30 05:03
newline:所以512MB有sense很容易悲劇?難怪ROM給這麼少10F 10/30 06:12
jerrystarks:11F 10/30 07:13
Narcissus:12F 10/30 08:05
yafx4200p:認真~看得懂的文 我朋友的HTC SS IS~常因記憶體不足當機13F 10/30 08:58
Taichun318:好文推推推!!14F 10/30 09:05
AquarianAge:推~~受益良多!!15F 10/30 09:16
Herba:好文推16F 10/30 09:37
Kayusumi:SE熱愛51217F 10/30 09:56
ninjaxin:推18F 10/30 10:15
ym920823:推推~剛好最近有這個疑惑~19F 10/30 10:23
parislove3:mini pro雖然只有320MB 倒也是運作愉快20F 10/30 10:37
dadaismyself:好文推21F 10/30 10:38
brokenwings:我好難過 原來我的milestone只是普通手機QQ22F 10/30 10:54
mbmax323:512+cm7 不用清,正常都剩餘200m左右23F 10/30 11:03
SillyCon:借問一下~所以用超級管理器來清出ram和工作管理員不一樣24F 10/30 11:03
SillyCon:是嗎?還有我的SS可用ram平常都在100左右徘徊這樣正常嗎@@
gwenyii:專業! 不過Salsa原來是512MB的.. 為什麼我覺得他只有128?26F 10/30 11:07
gwenyii:請問剩下來的到哪去了 0.0
rrichard:GPC!!!!!拜28F 10/30 11:15
hellbug:Xperia Play記憶體512MB到底夠不夠?29F 10/30 11:46
james732:夠不夠真的要看人怎麼用,我自己defy跟mini pro都512夠用30F 10/30 11:47
nvidia:用起來流暢就是夠用阿...31F 10/30 11:48
dichotomyptt:專業的來了 快拜32F 10/30 12:11
dux:那在系統資訊裡面看到的記憶體,可用跟空閒的查別是?33F 10/30 12:15
lovelove55:我會裝額外killer,不過與原PO相同會把不少程序設排除~34F 10/30 12:20
heacoun:最後一點XD35F 10/30 12:42
onezillion:關於耗電,只要常駐沒在上下載或cpu運算,耗電量微乎其微36F 10/30 12:51
onezillion:(dram上為了維持資料,還是會用掉一點點,但是很少)
onezillion:反而當你下次重新載入時,大量的資料重新丟入dram
onezillion:相比之下,耗電量就很大了
zhou:推推!!40F 10/30 13:11
pikalu:推GPC大!!!!41F 10/30 13:15
disjoint126:推專業!42F 10/30 13:54
man21093530:請問一下,要怎樣將"殺了會活"的程式設定成例外?43F 10/30 13:55
james732:樓上要看你用的是哪套管理程式,很多套都可以設定44F 10/30 13:58
JessicaAlba:有人可以教我優化Defy+嗎 常常不到5045F 10/30 14:11
richjf:好文46F 10/30 14:11
james732:我覺得根本不要理會剩餘記憶體多少,會用得比較快樂XD47F 10/30 14:12
nvidia:我也跟樓上一樣,跑的順就沒在意過了XD48F 10/30 14:23
james732:跑不順我也懶得砍來砍去,直接重新開機了...XD49F 10/30 14:27
tomap41017:推樓上重開機大法XD 有gpc神快拜50F 10/30 14:51
windfans:DHD讓Android自己管理大概都100以上 順順用XD51F 10/30 15:41
ppoyi:這篇很實用呀  推52F 10/30 16:00
joiedevivre:會自動復活的要如何凍結呢?53F 10/30 16:02
shcjosh:有神快拜!!54F 10/30 16:19
chrisho:跑不順用 QuickBoot reboot 就會又活過來啦55F 10/30 16:26
shcjosh:其實用supercharger scripte把low memory killer 設定高56F 10/30 16:33
shcjosh:一點就好了 512mb的機種100mb, 768 的設150mb 還可以防止
shcjosh:launcher reload
MapleWang:原來卡的主因是因為死而復生,長知識了59F 10/30 18:41
dennisiver:GPC耶  超級管理器的作者嗎?  有神快拜!!  順便推!60F 10/30 19:40
ktv32001:超棒的!說得很詳細,看來我的S2不用太在意記憶體勝多少了61F 10/30 22:28
wangsne003:神!62F 10/30 23:27
shawncarter:有神快拜!63F 10/30 23:43
chuxchu:這篇很詳細  不過我的機子很慘一開機就只剩50mb64F 10/31 00:10
chuxchu:開始有點想移除whatsapp之類的軟體了= =
waynechemi:簡單易懂的解說 推~66F 10/31 00:12
Utena:推神67F 10/31 00:30
hanasid:768mb表示68F 10/31 03:14
richjf:          要上不上 要下不下 卡卡69F 10/31 13:38
thank9527:2.3之後的記憶體管理好像又更好了~70F 10/31 13:40
akirk0823:SS表示71F 10/31 16:34

--
※ 看板: Dryfish 文章推薦值: 0 目前人氣: 0 累積人氣: 33 
分享網址: 複製 已複製
r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇