javascript-heap-out-of -memory-error

GI JUNG·2022년 10월 27일
3

nodejs

목록 보기
2/6
post-thumbnail

javascript로 queue를 구현하고 queue에서 요소 제거 시간을 측정하기 위해 배열을 초기화하는 도중 배열의 길이를 1억으로 설정 했을 때 javascript heap out of memory error가 발생했다.🔽 뭐 메모리 사이즈 오류라 생각하고 길이를 백만으로 줄이긴 했지만 1억으로 설정을 해 보고 싶어 찾아보다가 해결법을 찾아서 정리해본다.

💡 javascript heap out of memory

이 오류가 난 것은 간단한다. 그냥 heap memory가 부족하여 발생하는 에러로서 heap size를 조정하면 해결할 수 있다. 이 때 오류가 나는 메모리의 사이즈는 512MB로 이 size를 넘게되면 앱을 종료하게 된다.

오류가 난 코드는 아래와 같다.
src/queue.js code

...//
console.log("initializing array...");
const LENGTH = 100000000;
const normalArray = Array(LENGTH).fill(0);
console.log("finished initializing array...");
...//

전체 코드는 여기에 있다.

오류

🔎 메모리 늘리기

--max-old-space-size 설정

아래 명령어로 기본 메모리의 사이즈를 늘려준다.

$ node --max-old-space-size=4096 src/queue.js

처음에 512MB에서 1G로 늘렸다가 여유있게 4G를 주니 오류없이 작동했다.

위 명령어 말고도 다른 방법도 있다. 기본적으로 메모리 사이즈를 늘려주는 것은 동일하다.

NODE_OPTIONS 설정

$ export NODE_OPTIONS=--max_old_space_size=4096

bashrc 설정

$ export NODE_OPTIONS=--max_old_space_size=4096

참고

javascript memory exceed error

profile
step by step

0개의 댓글