java进程挂起,jvisualvm显示进程正在使用所有堆空间

时间:2016-11-27 11:02:08

标签: java heap

我的java进程挂起。它读取输入数据并将其解析为Integer []并将其写入磁盘。

jvisualvm显示该进程正在充分利用堆空间。 (java.lang.Integer和java.lang.Integer []分别使用77%和22%的堆空间)

AFAIK java进程在内存容量不足时显示OutOfMemory错误消息。

为什么我的流程挂在那里? 我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

假设您有一个完整的堆转储,您要做的是计算对象的完全保留大小。这将告诉您类的所有实例的完整大小,包括它持有引用的其他对象。拿最大的那个从那里开始。

Retained sizes in Visual VM