【转】android IDE——通过DDMS查看app运行时所占内存情况
在Android內存優化方面,我們不可能做到沒有大內存的占用情況。
所以有時候要清楚我們的app到底占用了多少內存,哪一步操作占用了多少的內存。
這時候,android的ddms中提供了一個工具,是可是實時查看app運行時的內存使用情況。
下面我以android studio為例。其實eclipse adt 是一樣的。
eclipse中也是這個圖標。
如何使用,圖中已經表明的很清楚了。?
1,找到當前運行的手機?
2,點擊和你app相同包名的進程?
3,點擊update Heap?
4,切換到Heap視圖上點擊Cause GC按鈕?
5,根據自己需要點擊app進程?
6,圖中的柱狀圖就是你的app的內存使用情況了
我們可以根據哪一步操作對內存的使用情況而鎖定應該優化的地方。
注意事項:?
1,Cause GC按鈕點擊一次就相當于虛擬機請求了一次gc操作?
2,當內存信息顯示后就不需要再點擊Cause GC按鈕了。Heap視圖會定時刷新,對應的操作過程可以看出內存變化。
如何知道程序內存泄漏??
Heap視圖中有一行數據是叫data object,即數據對象。它是我們app中大量存在的類類型的對象。?
在data object中有一列 Total Size ,它的值就是當前進程中所有Java對象的內存總量。?
一般情況下,這個值決定是否內存泄漏。
如何判斷??
1,不斷的操作你的app,同時觀察Total Size的值。?
2,Total Size的值一般會穩定在一個正常范圍內。?
3,當我們在不斷操作app的時候,內存會有一個先增加(不斷的生成對象),后下降(對象被回收)。如果程序的代碼處理良好,那么內存占用量會有一個明顯的回落,并且穩定在一個正常水平。?
4,如果你的代碼沒有很好的釋放內存。那么,內存占用量就沒有一個明顯的回落,并且會越來越高,最終達到上限程序被kill掉。
如何處理??
當我們發現內存泄漏了,我們需要怎么做??
一般情況下,我們對自己寫的代碼了如指掌,可以根據邏輯去判斷,當前操作是哪里造成了內存泄漏。然后分析,修改。
但是,如果你在修改別人的代碼的時候,這樣會把你逼瘋的。這里介紹一個工具:內存分析工具MAT(Memory Analyzer Tool),在eclipse中能夠當作插件使用。android studio目前我還沒試過。不過有客戶端。?
下載地址和使用詳情見:www.eclipse.org/mat
from:http://blog.csdn.net/yehui928186846/article/details/51387079
總結
以上是生活随笔為你收集整理的【转】android IDE——通过DDMS查看app运行时所占内存情况的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《中国人工智能学会通讯》——11.65
- 下一篇: 运维常说的 5个9、4个9、3个9 的可