Programming/Java

[IntelliJ IDEA] 'Initial heap size set to a larger value than the maximum heap size' 에러 해결기

리버김 2023. 7. 31.
이 에러는 맥북 프로 M2의 개발 환경을 세팅하면서 겪은 IntelliJ IDEA 관련 에러다. 사실 어제 이 에러를 겪었는데, 처음이 아니라 두 번째였다. 그런데 왜 또다시 몇 시간을 에러 해결에 쓰게 되었냐 하면, 입사 직후 IntelliJ를 처음 설치하면서 겪었을 때 구글링 후 해결한 뒤 제대로 정리해놓지 않았었다 ^^; 스스로에게 너무 화도 나고 짜증스러웠던 기억이라, 앞으로 더욱 정리를 잘 해야겠다는 동기 부여가 확실히 됐다. 사실 매일 업무 일지를 쓰고 있는데도 이렇게 빨리 치워버리고 싶은 마음에 잘 적지 않은 것이 발목을 잡을 줄 몰랐는데, 좋은 사례가 됐다.

heap memory란?

사용자에 의해 자원이 할당되고 해제되는 메모리의 부분이다. 스택 메모리와 반대의 역할을 한다고 보면 된다.

JS, Python 같이 고수준 언어를 주로 써 온 나에게는 낯설지만 C를 배우면 꼭 알아야 하는 개념이다.

 

 

그런데 heap memory size가 IntelliJ와 무슨 상관?

IntelliJ에서는 성능 테스트를 하거나 스펙을 올리고 싶을 때 heap memory size를 수동으로 조절할 수 있도록 해준다. 만약 heap memory의 최대 사이즈가 너무 작으면 IntelliJ에서 실행하고 있는 프로젝트의 속도가 느려질 것이다. 반대로 최대 사이즈가 크면 자원을 많이 한 번에 쌓아 놓을 수 있으니 실행 속도도 빨라질 것이다.

 

그런데 어떤 이유에선지 맥북 프로 M2에서 IntelliJ를 업데이트하니 자동으로 최소 힙과 최대 힙 메모리의 사이즈가 같도록 설정이 되어 IntelliJ가 아예 실행되지 않는 문제가 있었다.

 

이 문제를 해결하려면 당연한 이야기지만 최소 힙을 최대 힙 메모리 크기보다 1이라도 작게만 설정해주면 된다.

내가 가진 PC의 성능에 따라 메모리 크기는 결정하면 된다.

 

/Applications/IntelliJ IDEA.app/Contents/bin/idea.vmoptions

이제 이 파일을 VSCode와 같은 코드 에디터에서 열고,

 

 

하이라이트 된 최소 힙, 최대 힙 메모리 사이즈를 고쳐 쓴 뒤 저장하면 IntelliJ가 잘 실행될 거다.

 

이 문제를 해결하는 데 오래 걸린 이유...

말 그대로 IntelliJ가 실행조차 되지 않았기 때문에 어떤 오류인지 알 수 없었다. 오류 모달이 띄워지지도 않았다.

 

해결한 방법

이럴 때는 맥북의 터미널에서 해당 어플리케이션(IntelliJ)를 실행해 어떤 부분이 오류인지를 디버깅하면 된다. 에러 로그가 터미널 내에 출력될 것이기 때문이다.

 

open -a "IntelliJ IDEA.app"

 

위 명령어는 IntelliJ IDEA라는 이름의 어플리케이션을 열라는 뜻이다. 이렇게 터미널을 통해서 이 글의 제목이 되는 에러를 찾을 수 있었고, 다른 글들을 참고해서 힙 메모리 사이즈를 조정해 죽었던 IntelliJ를 다시 살려낼 수 있었다!

반응형

'Programming > Java' 카테고리의 다른 글

[Java] JDK 환경 설정하기  (0) 2022.12.09
[Java] Java 다운그레이드 방법  (0) 2022.11.10

댓글