如何分析应用程序的内存使用情况

时间:2011-11-14 03:35:47

标签: android memory

我尝试调试一个内存不足错误的Android应用程序。该 app在某些情况下无法分配3Mbytes。我分析了adb日志, dalvikvm有一些调试输出如下:

dalvikvm: GC_FOR_MALLOC freed <1K, 47% free 4781K/8967K, external 55469K/57517K, paused 64ms
dalvikvm: GC_EXTERNAL_ALLOC freed <1K, 47% free 4781K/8967K, external 55469K/57517K, paused 80ms
dalvikvm: GC_FOR_MALLOC freed 0K, 47% free 4781K/8967K, external 55469K/57517K, paused 39ms

我将上面输出的数字与“堆”窗口中的数字进行比较 DDMS。 “免费4781K / 8967K”似乎对应于“Allocated”和 DDMS“堆”中的“堆大小”。但是,我不确定什么是“外部的” 55469K / 57517K“。我怀疑它是由本机代码分配的内存。 有人知道吗?

1 个答案:

答案 0 :(得分:1)

这很复杂,所以Android平台工程师说:

How do I discover memory usage of my application in Android?

对于Android应用程序来说,3mb是很多的,起始堆非常小,约为16-32mb。