본문 바로가기

Java

[박혜웅] java.lang.OutOfMemoryError in Eclipse

이클립스에서 프로그램 실행시 힙 메모리 부족 오류가 발생하면 아래와 같은 메시지가 출력된다.

java.lang.OutOfMemoryError: Java heap space

java.lang.OutOfMemoryError: PermGen space

문제 해결을 휘애 대부분이 사용하는 방법은 Run/Debug 설정창에서 vmargs를 설정하는 것이다.
예를 들어 아래처럼 설정하면 최소 256, 최대 512M의 메모리를 프로그램 실행에 사용한다.
하지만 이렇게 하면 각 각의 Run Conf 설정마다 저렇게 입력해야 하는 불편함이 있다.

따라서 어떤 설정을 하던지 기본으로 vmargs 가 입력되도록 나는 이렇게 사용한다.

참고로 자바가 프로그램 수행시 사용하는 Heap 과 Permanent 메모리에 대해서 설명하면 다음과 같다. 일반적으로 Heap 메모리가 더 필요할 것이다.

Permanent : static 등 전역변수의 생성에 사용
Heap : new 를 이용한 객체 생성시 사용