manifest中的largeHeap的作用

【聲明:】本文是作者(蘑菇v5)原創(chuàng),版權(quán)歸作者 蘑菇v5所有,侵權(quán)必究。本文首發(fā)在簡(jiǎn)書(shū)。如若轉(zhuǎn)發(fā),請(qǐng)注明作者和來(lái)源地址!未經(jīng)授權(quán),嚴(yán)禁私自轉(zhuǎn)載!

先看機(jī)器的內(nèi)存限制,在/system/build.prop文件中:

dalvik.vm.heapsize=128m
dalvik.vm.heapgrowthlimit=64m

heapgrowthlimit就是一個(gè)普通應(yīng)用的內(nèi)存限制,用ActivityManager.getLargeMemoryClass()獲得的值就是這個(gè)。而heapsize是在manifest中設(shè)置了largeHeap=true之后,可以使用的最大內(nèi)存值。下面做實(shí)驗(yàn),不停地解碼圖片到內(nèi)存,看多少會(huì)爆掉:當(dāng)largeHeap=false時(shí):

04-08 17:18:50.169: E/dalvikvm(25460): Out of memory:
 Heap Size=60451KB, Allocated=51973KB, Limit=65536KB

當(dāng)largeHeap=true時(shí):結(jié)論就是,設(shè)置largeHeap的確可以增加內(nèi)存的申請(qǐng)量。但不是系統(tǒng)有多少內(nèi)存就可以申請(qǐng)多少,而是由dalvik.vm.heapsize限制。建議:Android官方給的建議是,作為程序員的我們應(yīng)該努力減少內(nèi)存的使用,想回收和復(fù)用的方法,而不是想方設(shè)法增大內(nèi)存。當(dāng)內(nèi)存很大的時(shí)候,每次gc的時(shí)間也會(huì)長(zhǎng)一些,性能會(huì)下降呦。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • OOM 的產(chǎn)生 在使用C或C++語(yǔ)言時(shí),我們可操作的內(nèi)存空間就是整個(gè)設(shè)備的物理內(nèi)存,程序員需要自己聲明內(nèi)存空間,也...
    CPPAlien閱讀 9,071評(píng)論 2 13
  • 本文轉(zhuǎn)載來(lái)源 http://www.csdn.net/article/2015-09-18/2825737/1 (...
    yoosir閱讀 1,222評(píng)論 0 5
  • HereAndroid的內(nèi)存優(yōu)化是性能優(yōu)化中很重要的一部分,而避免OOM又是內(nèi)存優(yōu)化中比較核心的一點(diǎn)。這是一篇關(guān)于...
    HarryXR閱讀 3,935評(píng)論 1 24
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,659評(píng)論 19 139
  • 最近在在網(wǎng)上看到好多分分合合的故事。看到好多人都再說(shuō),我們都想要一個(gè)牽了手就能結(jié)婚的愛(ài)情, 卻活在了一個(gè)上了床也沒(méi)...
    暮煙er閱讀 902評(píng)論 0 0

友情鏈接更多精彩內(nèi)容