2016-10-04 15 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。 –

回答