我正在研究我的应用程序,当我注意到我的应用程序的内存使用量一直在攀升......稳定......永远......并且每隔一段时间,Garbace收集器就会启动并切断减少内存使用量。
最终,我发现即使对于模板Hello World应用程序也是如此。
为什么会这样?它发生在你身上吗?如何让内存使用量无缘无故地停止增加?我以前不记得这是一个问题......我很疯狂哟!
以下是Hello World应用程序及其内存使用情况的图片。
答案 0 :(得分:6)
整个Android应用程序并不仅仅包含客户端(您的)代码。此外,应用程序还将具有GUI方面,这意味着它正在循环中运行,并且每次都需要重新绘制。很容易推测在该循环内至少有一个对象分配(可能不仅仅是一个)。考虑到对上述对象的引用超出范围,GC只会标记它并且不会立即释放内存。因此,新对象将不断消耗更多可用内存。当没有可分配的空闲内存时,GC将处理标记的对象,现在可以再次获取空闲内存。这大致可以在上面的图片中看到。这是一种正常的行为,而不是你应该担心的事情。一般来说,大多数优化和分析应该在主应用程序逻辑完成后完成。