Java堆内存使用量增加

时间:2014-07-11 18:27:27

标签: java heap-memory jconsole

我正在做一个快速的实验,看看我的算法的内存性能如何。 输入大约为2 Mb,算法运行大约需要1秒。 我在循环中运行了500次,以便能够查看内存分配。

这是jConsole显示内存使用情况的方式:

enter image description here

正如您所看到的那样,在GC启动之前,每两次堆内存使用量会增加(有点指数)(即使输入相同)。

有人知道这是否是预期的以及为什么会发生这种情况?它是由JVM完成的一些优化吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

  

有人知道这是否是预期的以及为什么会发生这种情况?它是由JVM完成的一些优化吗?

JVM正在努力减少GC-ing所花费的时间。如果你使用更多内存,它就不会经常使用GC。

  泄漏?

如果你看一下GC之后的内存使用情况,它就会大致相同,所以很明显它没有内存泄漏。或者至少不是一个大的。

你必须查看Full GCs之后使用的内存,以确认存在内存泄漏,我认为这些是次要集合。