React 에서 JavaScript heap out of memory 오류

gem1n1-youngjae·2022년 2월 22일
3
post-thumbnail

개요

React 로 개발을 하면서 프론트 서버가 가끔 강제 종료되는 일이 자주 발생했다.
JavaScript heap out of memory 라고 오류 메세지가 출력 되는데
이유를 살펴보니 node.js가 과도하게 메모리 점유를 해서 발생한다.
해결 방법으로 더 큰 메모리를 할당 해 주면 된다고 하여 8GB를 할당 해 주었다.

해결 1

할당 해주는 방법은
터미널에

export NODE_OPTIONS="--max-old-space-size=8192"

위 코드를 입력해주면 해결 된다.

하지만 대부분 1시간을 버티지 못하도 다시 서버가 강제 종료 되었다.

알고 보니 너무 많이 할당을 해주어도 문제이다.

내 노트북은 8gb 램인데 다 할당을 해주니 다른 프로그램이 할당 받을 것을 다 뺏어버린 것이다.
결국 충돌로 꺼지게 된다는것을 알게 되었다.
과유 불급이었다.

해결 2

그래서 1gb부터 8gb까지 1기가씩 증가시켜서 램을 할당 해주니 3gb가 딱 적당했다.
export NODE_OPTIONS="--max-old-space-size=3072"

나는 이 오류로 2달을 고생했다. 지금이라도 고쳐서 다행이다.
구글링으로 알기 어려우니 글을 남겨서 다른 사람들도 램을 적당히 할당해주길 바란다.

1gb ~ 8gb

1GB ~ 8GB 할당 명령어

#1gb
export NODE_OPTIONS="--max-old-space-size=1024"

#2gb
export NODE_OPTIONS="--max-old-space-size=2048"

#3gb
export NODE_OPTIONS="--max-old-space-size=3072"

#4gb
export NODE_OPTIONS="--max-old-space-size=4096"

#5gb
export NODE_OPTIONS="--max-old-space-size=5120"

#6gb
export NODE_OPTIONS="--max-old-space-size=6144"

#7gb
export NODE_OPTIONS="--max-old-space-size=7168"

#8gb 
export NODE_OPTIONS="--max-old-space-size=8192"

8gb 이상 할당은 해주지 말자.
gb계산이 귀찮으니 위 코드를 복붙해서 사용하길 바란다.

etc

CRA가 아닌 node에서 발생해도 해결이 가능하다.

profile
주니어 프론트 개발자❗❗

0개의 댓글