728x90
🚨 Error :

회사에서 OJT 기간에 주어진 과제를 수행하던 중 만난 에러이다. 테스트 코드를 통해 외부 파일을 읽는 작업에서 계속 에러가 발생했다.
🤓 원인 :
자바 힙 공간에 새로운 객체를 생성할 수 없는 경우에 발생한다고 한다. 현재 힙 크기(지정 혹은 기본)가 애플리케이션을 작동시키는 데에 충분하지 않거나, 생명주기가 긴 애플리케이션이 finalize를 과도하게 사용할 때 발생하는 에러이다.
🚒 해결 :
JVM 옵션에서 힙 옵션을 통해 jvm의 최소 힙사이즈와 최대 힙사이즈를 설정하는 방법이 있다.
사용 메모리 확인하는 방법
Eclipse의 경우
- Preferences > General에서 Show heap status를 체크하여 사용 메모리를 오른쪽 하단에서 확인 가능하다.
IntelliJ의 경우

- 쉬프트를 두 번 누르고 show Memory Indicator를 입력하여 ON으로 바꾸면 된다. eclipse와 마찬가지로 사용 메모리를 오른쪽 하단에서 확인 가능하다.
메모리 늘리기
Eclipse의 경우
- eclipserk 저장된 폴더에 들어가 eclipse.ini 파일에 들어가면 Xms와 Xmx가 나오는데 이 값을 수정하면 된다. Xms는 힙 영역의 시작 크기를 나타내고, Xmx는 힙 영역의 최대 크기를 나타낸다.
IntelliJ의 경우

- Help > Edit Custom Vm Options... 에 들어가 eclipse의 경우와 똑같이 Xms와 Xmx의 값을 수정해 주면 된다.
🤔 의문점 :
Xms와 Xmx의 값이 어느 정도까지 올려도 되는지, 적정값이 얼마인지 잘 모르겠다. 확실한 건 현재 내가 가지고 있는 것은 어마어마하게 큰 파일이라 힙 메모리를 늘려도 내 맥북 에어로는 무리일 듯싶어 여기까지만 알아보고 파일 크기를 줄여 테스트만 통과하는 방식으로 해결했다.
참고
https://velog.io/@jsj3282/Heap-Memory-Leak-OutOfMemoryError
https://shanepark.tistory.com/403
728x90
'[Error Handling]' 카테고리의 다른 글
| 😡 Github : Authentication failed for~ (0) | 2023.05.09 |
|---|---|
| 😡 java.lang.IllegalStateException: Cannot get a STRING value from a NUMERIC cell 해결하기 (0) | 2023.05.09 |
| 😡 No tests found for given includes 에러(IntelliJ) (0) | 2023.05.05 |
| 😡 JPA - Table '데이터베이스명.hibernate_sequence' doesn't exist (1) | 2023.04.25 |
| 😡 [Spring Security] There is no PasswordEncoder mapped for the id "null" (0) | 2023.04.25 |