관리 메뉴

필사(筆寫)

V8에서 GC를 조금 더 빠르게 쓰는 가장 간단한 팁 본문

Service Developments/Node.js,Express

V8에서 GC를 조금 더 빠르게 쓰는 가장 간단한 팁

코딩필사 2024. 1. 28. 19:05

nodejs에서 GC는 정말 빠르게 잘 대응해줘야하는 녀석중 하나인데

좁은 메모리 환경을 보다 효율적으로 잘 쓰게 해주는 녀석이기도 하기에 아래와 같은 아주 짧막한 팁을 적어본다.

 

let output = [....].join('')

 

간단한 배열 메모리 있다치면, 이를 비우는 과정도 중요한 관점이지만 이미 join을 통해 string 객체로 변환되어서 주소에 배정되었다 가정하면.

 

output = null

 

이렇게 배정하면 해당 주소 기준으로 메모리를 끊는 과정은 있지만 GC가 다녀가기 전까지 배열로 변환했던 string 값은 메모리에 보관되는 경우가 있다.

 

output = undefined

 

을 쓰자. 그럼 GC가 쓰레기로 판정후 해당 데이터를 지우러 빨리 와준다. 이는 다처리 구간에서 무척이나 아주 강렬하게 도움을 준다. 만약 배열형이라면 empty를 먼처 트릭을 치고, ouput 을 위처럼 언디파인 처리하는게 보다 좀 더 빠르게 반응한다.

 

정리

 

1,0도 중요하지만 어떻게 0인가(0, '', -0, +0, NaN, null, undefined)에 대한 물음에 있어서 undefined가 가장 빠르게 GC에게 잡힌다.