關(guān)于build.prop原始Dalvik虛擬機(jī)設(shè)定與調(diào)整

測試機(jī)型:三星S3 臺版 1GB Ram究履。和魅藍(lán)有點(diǎn)近滤否。本文轉(zhuǎn)自其它論壇,為什么要轉(zhuǎn)呢挎袜?因?yàn)槲业南乱粋€魅藍(lán)優(yōu)化教程要用到這里面的東西顽聂。各位魅友可以先來學(xué)習(xí)下。

在system/build.prop盯仪,原始三星S3的Dalvik虛擬機(jī)設(shè)定是這樣子的:

1.dalvik.vm.heapstartsize=8m(表示應(yīng)用程序啟動后為其分配的初始大小為8m)
這里分配的內(nèi)存容量會影響到整個系統(tǒng)對RAM的使用程度紊搪,和第一次使用應(yīng)用程序時的流暢程序。
這個值越大全景,系統(tǒng)消耗RAM則越快耀石,但是應(yīng)用程序打開后的反應(yīng)也越快。
值越小爸黄,系統(tǒng)的RAM剩余則越多滞伟,但是程序在啟動后會比較慢揭鳞。

2.dalvik.vm.heapgrowthlimit=64m(每個應(yīng)用程序最大內(nèi)存可分配到64m)
超過就會崩潰,退出該app...我猜沒錯的話

3.dalvik.vm.heapsize=256m(單個虛擬機(jī)可分配的最大內(nèi)存256m)
這里分配的內(nèi)存容量會影響到整個系統(tǒng)對RAM的使用程序梆奈,和程序在運(yùn)行一段時間后的反應(yīng)速度野崇。這個值越大,系統(tǒng)消耗RAM則越快亩钟,但是程序會運(yùn)行的非常穩(wěn) 定乓梨,尤其是游戲和視頻程序的內(nèi)容加載速度可以大幅度提升。值越小清酥,系統(tǒng)的RAM剩余則越多扶镀,但是程序會很卡,尤其是游戲在切換場景Loading的時候會 花費(fèi)很多的時間焰轻。若應(yīng)用程序需要使用超過這個值的內(nèi)存時臭觉,將會觸發(fā)系統(tǒng)的垃圾收集器辱志,系統(tǒng)和程序就會卡頓蝠筑。

用上面設(shè)定的話
每開啟一只app荸频,系統(tǒng)就會劃出8m的動態(tài)內(nèi)存給該程式使用客冈,超過的部分會再+8m
共可以+7次8m旭从,包含一開始劃出的8m,總共64m场仲,這是單一只程式的最大動態(tài)內(nèi)存使用量
超過的話,該程式就會崩潰(自動結(jié)束掉)
單個虛擬機(jī)可分配的最大內(nèi)存256m鸽素,意思是可以裝滿64m內(nèi)存的程式X4
超過的部分就會對虛擬機(jī)內(nèi)的程式強(qiáng)制回收內(nèi)存,一方面要先強(qiáng)制關(guān)掉一些程式亦鳞,一方面要加載程式劃分新的內(nèi)存馍忽,這時候就會出現(xiàn)卡卡卡、頓頓頓

因?yàn)槊總€人使用習(xí)慣不同燕差,有時愛裝一堆widget(小工具)在桌面上,單單擺在桌面上也不常使用他
也許單一widget只要3-5m瓦呼,如果今天一開始就劃分8m內(nèi)存給他测暗,對于一個常駐不到5M的程式
磨澡,就多浪費(fèi)3M的內(nèi)存质和,一般原廠rom閑置程序+后臺程序就約30個稳摄,每個都浪費(fèi)約3M內(nèi)存
就將近浪費(fèi)90M
所以我們可以將
1.dalvik.vm.heapstartsize=8m饲宿,改為=4M后重開機(jī)
光待機(jī)其況下你就會發(fā)現(xiàn)使用中內(nèi)存變少了,可用內(nèi)存變多了弃锐,雖然你在使用桌面小工具時候
可能不會比當(dāng)初還要順殿托,因?yàn)橄到y(tǒng)還在幫該程式劃分新的內(nèi)存空間,但也不至于頓

2.dalvik.vm.heapgrowthlimit=64m不用改支竹,現(xiàn)在的app在前景中都吃很大內(nèi)存
若改小成32m,那假設(shè)程序內(nèi)存要吃到40m才會夠用饶碘,該程式可能就當(dāng)給你看

3..dalvik.vm.heapsize=256m(單個虛擬機(jī)可分配的最大內(nèi)存256m)馒吴,雖然是寫單個虛擬機(jī),但系統(tǒng)到底會產(chǎn)生多少個虛擬機(jī)...我不確定豪治,但唯一確定是不超過實(shí)際ram的可用量
記得S3雖然是配1G RAM,但實(shí)際上看到好像是780M吧(其他好像是GPU用掉了)
780/256=3...扯罐,大概就是3個虛擬機(jī)左右(應(yīng)該是這樣)
想要看到更多ram的人可以將256改為128m,重開機(jī)后...你會發(fā)現(xiàn)可用內(nèi)存又變多了...
但一樣掩浙,開啟新程式時候要再+128劃分新的虛擬機(jī)秸歧,速度可能慢一些,但不會頓寥茫,又可節(jié)省內(nèi)存的不必要浪費(fèi)

以上是犧牲一些開啟速度,但可以減緩被系統(tǒng)強(qiáng)制回收內(nèi)存的頓挫感

小弟我第一次打這么大篇瞎掰文芭梯,各位當(dāng)作參考就好不要完全相信
關(guān)于root后修改build.prop當(dāng)?shù)簟⑺罊C(jī)玖喘、變磚,請不要晚上來找我~謝謝


懶人總結(jié) S3 臺版
1.想要裝很多widget小工具到桌面的贬派,推薦
dalvik.vm.heapstartsize=5m
dalvik.vm.heapgrowthlimit=40m
dalvik.vm.heapsize=160m
也許開啟程式?jīng)]那么快澎媒,但比較不卡頓,且可用內(nèi)存會比較多


2.只要玩游戲请敦、桌面很干凈很無聊的储玫、不安裝其他widget小工具
dalvik.vm.heapstartsize=16m
dalvik.vm.heapgrowthlimit=64m
dalvik.vm.heapsize=384m
加載大型程式或游戲比較快,缺點(diǎn)是可用內(nèi)存會比較小


S3 LTE (I9305)默認(rèn)dalvik也是跟S3一樣
但是可以改成(我也是這樣設(shè)定)
dalvik.vm.heapstartsize=8m
dalvik.vm.heapgrowthlimit=64m
dalvik.vm.heapsize=576m(1750/576=3...)可以做出3個虛擬機(jī)撒穷。
(576/8)在8M以下的程式可以有72只閑置程式
(576/64)一個虛擬機(jī)可以容納9只多工作。

//最后附上本人魅藍(lán)使用的參數(shù)禽笑,回帖可見齐媒。
dalvik.vm.heapstartsize=8m
dalvik.vm.heapgrowthlimit=80m
dalvik.vm.heapsize=320m
dalvik.vm.heaptargetutilization=0.84
dalvik.vm.heapminfree=1m
dalvik.vm.heapmaxfree=8m

最后科普下:

  dalvik.vm.heapstartsize  

 堆分配的初始大小,調(diào)整這個值會影響到應(yīng)用的流暢性和整體ram消耗。這個值越小贫奠,系統(tǒng)ram消耗越慢,但是由于初始值較小拷恨,一些較大的應(yīng)用需要擴(kuò)張這個堆谢肾,從而引發(fā)gc和堆調(diào)整的策略,會應(yīng)用反應(yīng)更慢。相反微姊,這個值越大系統(tǒng)ram消耗越快分预,但是程序更流暢。

 dalvik.vm.heapgrowthlimit       

 極限堆大小笼痹,dvm heap是可增長的凳干,但是正常情況下dvm heap的大小是不會超過dalvik.vm.heapgrowthlimit的值。如果受控的應(yīng)用dvm heap size超過該值救赐,則將引發(fā)oom。

dalvik.vm.heapsize

使用大堆時少欺,極限堆大小馋贤。一旦dalvik heap size超過這個值,直接引發(fā)oom配乓。在android開發(fā)中,如果要使用大堆崎页,需要在manifest中指定android:largeHeap為true腰埂。這樣dvm heap最大可達(dá)dalvik.vm.heapsize。

[dalvik.vm.heaptargetutilization]: [0.75]   可以設(shè)定內(nèi)存利用率的百分比牺荠,當(dāng)實(shí)際的利用率偏離這個百分比的時候驴一,虛擬機(jī)會在GC的時候調(diào)整堆內(nèi)存大小,讓實(shí)際占用率向個百分比靠攏肝断。

上面的幾個參數(shù)是與虛擬機(jī)的內(nèi)存分配相關(guān)的驰凛,虛擬機(jī)的內(nèi)存分配過程是下面這樣的:

1 首先判斷一下需要申請的size是不是過大担扑,如果申請的size超過了堆的最大限制,則轉(zhuǎn)入步驟6

2 嘗試分配渔隶,如果成功則返回洁奈,失敗則轉(zhuǎn)入步驟3

3 判斷是否gc正在進(jìn)行垃圾回收,如果正在進(jìn)行則等待回收完成之后呈野,嘗試分配印叁。如果成功則返回,失敗則轉(zhuǎn)入步驟4

4 自己啟動gc進(jìn)行垃圾回收轮蜕,這里gcForMalloc的參數(shù)是false。所以不會回收軟引用率触,回收完成后嘗試分配汇竭,如果成功則返回,失敗則轉(zhuǎn)入步驟5

5 調(diào)用dvmHeapSourceAllocAndGrow嘗試分配细燎,這個函數(shù)會擴(kuò)張堆。所以heap startup的時候可以給一個比較小的初始堆悼凑,實(shí)在不夠用再調(diào)用它進(jìn)行擴(kuò)張

6 進(jìn)入回收軟引用階段击狮,這里gcForMalloc的參數(shù)是ture,所以需要回收軟引用。然后調(diào)用dvmHeapSourceAllocAndGrow嘗試分配捺萌,如果失敗則拋出OOM膘茎。

好了酷誓,教程到這里結(jié)束了,如果你堅持看完了棒拂,你早晚會成為大神的:D玫氢。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市攻旦,隨后出現(xiàn)的幾起案子生逸,更是在濱河造成了極大的恐慌,老刑警劉巖烙无,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件遍尺,死亡現(xiàn)場離奇詭異,居然都是意外死亡合搅,警方通過查閱死者的電腦和手機(jī)歧蕉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來赌髓,“玉大人催跪,你說我怎么就攤上這事“谜簦” “怎么了?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵舌仍,是天一觀的道長。 經(jīng)常有香客問我球订,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任往果,我火速辦了婚禮羔砾,結(jié)果婚禮上拧晕,老公的妹妹穿的比我還像新娘。我一直安慰自己输玷,他們只是感情好靡馁,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著赔嚎,像睡著了一般胧弛。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上结缚,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天红竭,我揣著相機(jī)與錄音,去河邊找鬼茵宪。 笑死稀火,一個胖子當(dāng)著我的面吹牛暖哨,可吹牛的內(nèi)容都是我干的凰狞。 我是一名探鬼主播箕慧,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼斩熊!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起粉渠,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤霸株,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后去件,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡倔叼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年宫莱,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片巡验。...
    茶點(diǎn)故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡碘耳,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出敷硅,到底是詐尸還是另有隱情愉阎,我是刑警寧澤,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布幽七,位于F島的核電站溅呢,受9級特大地震影響猿挚,放射性物質(zhì)發(fā)生泄漏驶鹉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一办绝、第九天 我趴在偏房一處隱蔽的房頂上張望姚淆。 院中可真熱鬧,春花似錦腌逢、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至吓笙,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間絮蒿,已是汗流浹背叁鉴。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留但壮,地道東北人。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓蜡饵,卻偏偏與公主長得像胳施,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子焦辅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評論 2 355

推薦閱讀更多精彩內(nèi)容