为什么Android应用内存使用量会永远增加?甚至Hello World应用程序

时间:2015-08-19 15:54:10

标签: java android memory-leaks garbage-collection

我正在研究我的应用程序,当我注意到我的应用程序的内存使用量一直在攀升......稳定......永远......并且每隔一段时间,Garbace收集器就会启动并切断减少内存使用量。

最终,我发现即使对于模板Hello World应用程序也是如此。

为什么会这样?它发生在你身上吗?如何让内存使用量无缘无故地停止增加?我以前不记得这是一个问题......我很疯狂哟!

以下是Hello World应用程序及其内存使用情况的图片。

Hello World app, and memory usage

1 个答案:

答案 0 :(得分:6)

整个Android应用程序并不仅仅包含客户端(您的)代码。此外,应用程序还将具有GUI方面,这意味着它正在循环中运行,并且每次都需要重新绘制。很容易推测在该循环内至少有一个对象分配(可能不仅仅是一个)。考虑到对上述对象的引用超出范围,GC只会标记它并且不会立即释放内存。因此,新对象将不断消耗更多可用内存。当没有可分配的空闲内存时,GC将处理标记的对象,现在可以再次获取空闲内存。这大致可以在上面的图片中看到。这是一种正常的行为,而不是你应该担心的事情。一般来说,大多数优化和分析应该在主应用程序逻辑完成后完成。