※ 本文為 dryfish.bbs. 轉寄自 ptt.cc 更新時間: 2011-11-16 11:12:21
看板 Android
作者 標題 Re: [討論] 別再盲目迷信工作管理員了...
時間 Sun Oct 30 03:51:33 2011
關於這問題我以前已經有做專業分析了,請在版上按a -> gpc 可以搜尋我之前的文章
不過上次分析不夠詳細,剛好又遇到,再來說一下,有緣人可以參考XD
不過上次分析不夠詳細,剛好又遇到,再來說一下,有緣人可以參考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兩個機制就沙很大了
(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
100-50=50還是有50,退出程式後,又回到100,如果不小心吃過頭,還有個20~30
平常用高檔機子的人可能沒什感覺,但像我最近用LG 3D 超冷門的機子
他的RAM只有512MB,重點是他內建的"芋仔"太多了,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)
→ :我的閥值一直都打錯字...1F 10/30 04:00
推 :有緣人可以參考XD2F 10/30 04:05
→ :這一篇文章值 542 Ptt幣3F 10/30 04:09
推 :專業推...但這年頭太專業容易讓人忽略XDD4F 10/30 04:13
推 :我有很認真看完!!!!5F 10/30 04:22
推 :淺顯易懂!!!6F 10/30 04:55
推 :ss的ram算在哪種阿XD7F 10/30 04:55
推 :推樓上XD 沒刷ROM的SS算...?8F 10/30 05:00
推 :大推...9F 10/30 05:03
→ :所以512MB有sense很容易悲劇?難怪ROM給這麼少10F 10/30 06:12
推 :11F 10/30 07:13
推 :12F 10/30 08:05
推 :認真~看得懂的文 我朋友的HTC SS IS~常因記憶體不足當機13F 10/30 08:58
推 :好文推推推!!14F 10/30 09:05
推 :推~~受益良多!!15F 10/30 09:16
推 :好文推16F 10/30 09:37
→ :SE熱愛51217F 10/30 09:56
推 :推18F 10/30 10:15
推 :推推~剛好最近有這個疑惑~19F 10/30 10:23
推 :mini pro雖然只有320MB 倒也是運作愉快20F 10/30 10:37
推 :好文推21F 10/30 10:38
推 :我好難過 原來我的milestone只是普通手機QQ22F 10/30 10:54
推 :512+cm7 不用清,正常都剩餘200m左右23F 10/30 11:03
推 :借問一下~所以用超級管理器來清出ram和工作管理員不一樣24F 10/30 11:03
→ :是嗎?還有我的SS可用ram平常都在100左右徘徊這樣正常嗎@@
→ :是嗎?還有我的SS可用ram平常都在100左右徘徊這樣正常嗎@@
推 :專業! 不過Salsa原來是512MB的.. 為什麼我覺得他只有128?26F 10/30 11:07
→ :請問剩下來的到哪去了 0.0
→ :請問剩下來的到哪去了 0.0
推 :GPC!!!!!拜28F 10/30 11:15
推 :Xperia Play記憶體512MB到底夠不夠?29F 10/30 11:46
→ :夠不夠真的要看人怎麼用,我自己defy跟mini pro都512夠用30F 10/30 11:47
推 :用起來流暢就是夠用阿...31F 10/30 11:48
推 :專業的來了 快拜32F 10/30 12:11
推 :那在系統資訊裡面看到的記憶體,可用跟空閒的查別是?33F 10/30 12:15
推 :我會裝額外killer,不過與原PO相同會把不少程序設排除~34F 10/30 12:20
推 :最後一點XD35F 10/30 12:42
→ :關於耗電,只要常駐沒在上下載或cpu運算,耗電量微乎其微36F 10/30 12:51
→ :(dram上為了維持資料,還是會用掉一點點,但是很少)
→ :反而當你下次重新載入時,大量的資料重新丟入dram
→ :相比之下,耗電量就很大了
→ :(dram上為了維持資料,還是會用掉一點點,但是很少)
→ :反而當你下次重新載入時,大量的資料重新丟入dram
→ :相比之下,耗電量就很大了
推 :推推!!40F 10/30 13:11
推 :推GPC大!!!!41F 10/30 13:15
推 :推專業!42F 10/30 13:54
推 :請問一下,要怎樣將"殺了會活"的程式設定成例外?43F 10/30 13:55
→ :樓上要看你用的是哪套管理程式,很多套都可以設定44F 10/30 13:58
推 :有人可以教我優化Defy+嗎 常常不到5045F 10/30 14:11
推 :好文46F 10/30 14:11
→ :我覺得根本不要理會剩餘記憶體多少,會用得比較快樂XD47F 10/30 14:12
→ :我也跟樓上一樣,跑的順就沒在意過了XD48F 10/30 14:23
→ :跑不順我也懶得砍來砍去,直接重新開機了...XD49F 10/30 14:27
推 :推樓上重開機大法XD 有gpc神快拜50F 10/30 14:51
推 :DHD讓Android自己管理大概都100以上 順順用XD51F 10/30 15:41
推 :這篇很實用呀 推52F 10/30 16:00
推 :會自動復活的要如何凍結呢?53F 10/30 16:02
→ :有神快拜!!54F 10/30 16:19
推 :跑不順用 QuickBoot reboot 就會又活過來啦55F 10/30 16:26
→ :其實用supercharger scripte把low memory killer 設定高56F 10/30 16:33
→ :一點就好了 512mb的機種100mb, 768 的設150mb 還可以防止
→ :launcher reload
→ :一點就好了 512mb的機種100mb, 768 的設150mb 還可以防止
→ :launcher reload
推 :原來卡的主因是因為死而復生,長知識了59F 10/30 18:41
推 :GPC耶 超級管理器的作者嗎? 有神快拜!! 順便推!60F 10/30 19:40
推 :超棒的!說得很詳細,看來我的S2不用太在意記憶體勝多少了61F 10/30 22:28
推 :神!62F 10/30 23:27
推 :有神快拜!63F 10/30 23:43
推 :這篇很詳細 不過我的機子很慘一開機就只剩50mb64F 10/31 00:10
→ :開始有點想移除whatsapp之類的軟體了= =
→ :開始有點想移除whatsapp之類的軟體了= =
推 :簡單易懂的解說 推~66F 10/31 00:12
推 :推神67F 10/31 00:30
推 :768mb表示68F 10/31 03:14
推 : 要上不上 要下不下 卡卡69F 10/31 13:38
推 :2.3之後的記憶體管理好像又更好了~70F 10/31 13:40
推 :SS表示71F 10/31 16:34
--
※ 看板: Dryfish 文章推薦值: 0 目前人氣: 0 累積人氣: 33
回列表(←)
分享