728x90
반응형
junit java.lang.OutOfMemoryError : Java heap space 에러 원인과 해결방법

 

 

◆ 원인


Junit 실행 중 Java 애플리케이션이 사용 가능한 힙(heap) 메모리 공간을 모두 사용했을 때 발생한다.

예) 큰 파일을 읽는 경우, 큰 데이터 구조를 메모리에 로드하는 경우, 메모리 누수가 있는 경우 등

 

 

◆ 해결방법


큰 테스트를 작게 분할한다던지, 메모리 누수의 원인이 되는 코드를 수정하는 등의 근본적인 원인해결이 가장 좋지만

어려울 경우, 힙(heap) 크기를 조정하여 증가시킨 뒤 테스트를 진행하는 것도 하나의 방법이 될 수 있다.

 

< -Xmx1024m 옵션을 사용하여 힙(heap) 크기를 1024MB로 설정 >

이클립스의 Window ⇒ Preferences ⇒ Java ⇒ Installed JREs ⇒ jre 나 jdk 선택한뒤 Edit... ⇒ Arguments 

VM arguments에 아래내용 추가

-Xms=1024m -Xmx=1024m -XX:PermSize=128m -XX:MaxPermSize=128m -XX:NewSize=320m -XX:MaxNewSize=320m -XX:SurvivorRatio=2 -XX:TargetSurvivorRatio=80

 

설정 설명 기본값
-Xms Java 기동시 힙(heap)의 초기 크기를 지정 50MB
-Xmx Java 기동시 힙(heap)의 최대 크기를 지정 256MB

-Xms=1024m -Xmx=1024m : 초기크기와 최대크기가 같기 때문에 기동 중 힙 크기는 1024MB로 고정된다.

-Xms=256m -Xmx=2048m : 초기크기는 256MB이며 최대 크기는 2048MB로 지정된다. 


글 내용 중 잘못된 부분이 있거나, 첨부하실 내용이 있으시면 댓글로 남겨주세요. 공부하는데 많은 도움이 됩니다.
-- 기억의 유효기간은 생각보다 짧다. --

 

728x90
반응형