2016-10-04 3 views
2

힙이 가득 찼기 때문에 outofmemory 오류가 발생합니다. 할당 된 Visual 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 '옵션을 사용하여 Full GC 후에 얼마나 많은 메모리가 유지되는지 살펴볼 것입니다. 예를 들어,'ParsePosition'은 유지 된 값이 매우 적어야합니다. '[''는'int''의 배열입니다. [B'는 바이트의 배열입니다. [C'는 보통 char 내부의 String입니다.] [Z'는'boolean []'입니다. 100GB가 아닌 약 10GB. –

답변