2016-10-04 16 views
2

由于堆已满,我正在收到outofmemory错误。我试图使用可视VM堆分配为100GB,当它变高时,我的代码崩溃。当我试图用JMAP堆命令它向我展示这个无法识别堆上的未知对象?

2:  7507575  4337985632 [I 
    3:  25378115  3958444680 [B 
    4:  66190710  2721459632 [C 
    5:  61202334  1958474688 java.lang.String 
    6:  71581749  1717961976 java.lang.Long 
    7:  27637190  905312736 [Z 
    8:  217955  701768592 [Ljava.lang.Object; 
    9:  26329556  631909344 java.text.ParsePosition 
    10:  17176831  549658592 java.util.Date 

什么是这等[I和[B和[C对象,我如何才能找到他们?

我不能采取堆转储。

+0

您正在运行哪些代码会导致此问题? – nhouser9

+0

这些是数组。我认为他们是int数组。 – Carcigenicate

+0

我想看看使用'jmap'这个'live' opion完成GC后保留了多少内存。例如'ParsePosition'应该有很少的保留值。 '[''是'int'的数组,'[B'是一个字节数组,'[C'''''''''''''''在字符串中,'''''布尔[]'大约10 GB而不是100 GB。 –

回答