堆内存每次都会触及新高

时间:2015-12-29 12:24:30

标签: java heap-memory

jconsole heap graph

我的图表中的窥视每次都触及新的高度。 我的vm参数如下,

-XX:+UseCompressedOops -XX:+TieredCompilation -Xms1303m -Xmx1303m -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000

这些争论是好还是错呢?

1 个答案:

答案 0 :(得分:1)

这对我来说很正常。

在Eden空间中创建对象,您似乎拥有大约400 MB的Eden。 (峰值和最小内存使用之间的大小)

这表示您每3小时或大约400 MB /小时创建大约3个。注意:您的监控工具可能会创建大量甚至大部分垃圾。

在每次小集合之后,幸存的对象被添加到幸存者空间。一旦这些对象被复制了足够多次,它们就会被添加到终身空间。

当您使用JMX / RMI时,这可能是eden中垃圾和保留对象的主要原因。我建议你重新连接并执行一个完整的GC。这将让你知道实际保留了多少。

如果在完整GC之后保留的数量增加,则可能会发生内存泄漏。