溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

APP專項---內(nèi)存泄漏

發(fā)布時間:2020-04-05 18:52:16 來源:網(wǎng)絡(luò) 閱讀:642 作者:愛與夢想 欄目:軟件技術(shù)

如何查看APP占用的內(nèi)存

  • 系統(tǒng)設(shè)置中--存儲--應(yīng)用--正在運行的--某個APP

  • adb shell dumpsys meminfo 包名,但無法實時查看

  • DDMS, 可實時查看


備注:

每個APP占內(nèi)存包括私有(PrivateDirty)、公共(ShareDirty)兩部分

手機系統(tǒng)設(shè)置里顯示的正在運行的APP,顯示的是Total Pss(PSS:實際使用的物理內(nèi)存)

APP專項---內(nèi)存泄漏



步驟:

adb shell dumpsys meminfo com.yibasan.lizhifm

APP專項---內(nèi)存泄漏

android程序內(nèi)存被分為2部分:native和dalvik

dalvik就是我們平常說的java堆,

我們創(chuàng)建的對象是在這里面分配的

查看pss total和heap size(27716KB)

不能超過最大限制(使用下面的命令查看)

adb shell

getprop | grep heapgrowthlimit

APP專項---內(nèi)存泄漏

查看單個應(yīng)用程序最大內(nèi)存限制(meminfo里面的dalvik heap size的最大值27716KB,

如果超出了192M那就很可能會發(fā)生OOM)



總結(jié):

每次gc后,pss total沒有明顯回落,就有可能存在內(nèi)存泄漏,但仍需長時間觀察。

dalvik heap size超過heapgrowthlimit會發(fā)生OOM,

但如果Manifest中的application標(biāo)簽中聲明android:largeHeap=True,

則dalvik heap達到heapgrowthlimit限制的時候不會出現(xiàn)OOM,

需要達到heap size的時候才會出現(xiàn)OOM

adb shell

getprop | grep dalvik.vm.heapsize? 單個java虛擬機最大的內(nèi)存限制

APP專項---內(nèi)存泄漏


再次總結(jié):

dalvik.vm.heapstartsize----------初始分配的內(nèi)存大小

dalvik.vm.heapgrowthlimit------應(yīng)用的最大內(nèi)存限制

dalvik.vm.heapsize--------------java虛擬機最大內(nèi)存限制


向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI