2016-11-27 3 views
0

Java 프로세스가 중지됩니다. 입력 데이터를 읽어서 Integer []로 파싱하여 디스크에 씁니다.java 프로세스가 중단되면 jvisualvm이 프로세스가 힙 공간을 모두 사용하고 있음을 나타냅니다.

jvisualvm은 프로세스가 힙 공간을 완전히 사용하고 있음을 보여줍니다. (Integer 및 java.lang.Integer []는 힙 공간의 77 % 및 22 %를 사용합니다)

AFAIK 메모리 용량이 충분하지 않을 때 Java 프로세스가 OutOfMemory 오류 메시지를 표시하지 않습니다.

왜 내 프로세스가 멈 춥니 까? 이 문제를 어떻게 해결할 수 있습니까?

+0

당신이 당신의 질문에 대한 답변이 코드를 게시하려고 싶어합니다. 코드가 없으면 힙 크기를 늘리십시오. - Xmx 옵션. 문제가 계속 발생하면 리소스를 확보하는 방법을 살펴보아야합니다. 프로그램이 실행되는 동안 정수 및 정수 []가 모두 필요합니까? –

답변

0

전체 힙 덤프가 있다고 가정하면 개체의 완전히 유지되는 크기를 계산하는 것이 좋습니다. 이렇게하면 참조를 보유하고있는 다른 객체를 포함하여 클래스의 모든 인스턴스 전체 크기를 알 수 있습니다. 가장 큰 것을 가지고 거기에서 시작하십시오.

Retained sizes in Visual VM