我正在研究Java中的内存使用情况,以了解为什么我的程序会泄漏内存。在我的主while循环中剥离代码后,我仍然会随着时间的推移增加内存使用量。思考一个空的程序的内存使用情况:为什么空的Java程序会消耗内存?
class Nothing
{ public static void main(String[] args)
{ while(true); }
}
我仍然认为增加的内存:
所以我的问题是:为什么仍锯齿模式?为什么当GC运行时不能保存所有的内存(每次gc运行(谷))时使用的内存增加10-20Kb(与之前的谷相比))?
编辑:
Java版本 “1.6.0_29”
的Java(TM)SE运行时环境(建立1.6.0_29-B11)
的HotSpot的Java(TM)客户端虚拟机(构建20.4-B02,混合模式,共享)
OS:Windows 7企业-32位
我没有看到增加。记忆力上升,然后收集下来。它看起来像使用的最大内存随着时间的推移是不变的。 –
另一个尝试在应用程序中查找内存泄漏的工具是[Plumbr](http://plumbr.eu)。它应该比摔跤探测器更容易,并试图从所有这些信息中推断出某些东西。 – Nikem