본문 바로가기
JavaScript

JavaScript 가비지 컬렉션

by 하이방가루 2022. 2. 10.
728x90
반응형

자바스크립트에서 메모리를 관리하는 시스템이다.

엔진에서 자동으로 실행하는 것으로 개발자가 제어할 수 없다.

저수준 최적화가 필요한 상황일 때, 알 필요가 있다.

기본적으로 '도달가능성(reachability)'을 검사하여 도달할 수 없는 값을 메모리에서 삭제한다.

내부 알고리즘

  1. 루트(root) 정보를 수집하고 이를 기억한다.
  2. 루트가 참조하고 있는 모든 객체를 방문하고 이것들을 기억한다.
  3. 기억된 모든 객체에 방문하고, 그 객체들이 참조하는 객체도 기억한다. 이 때, 한번 기억한 객체는 다시 방문하지 않는다.
  4. 루트에서 도달 가능한 모든 객체를 방문할 때까지 3의 과정을 반복한다.
  5. 기억되지 않은 모든 객체를 메모리에서 삭제한다.

루트의 종류

  • 현재 함수의 지역 변수와 매개변수
  • 중첩 함수의 체인에 있는 함수에서 사용되는 변수와 매개변수
  • 전역 변수
  • 기타 등등

 

 

728x90
반응형

'JavaScript' 카테고리의 다른 글

JavaScript 심볼형  (0) 2022.02.14
JavaScript this와 체이닝  (0) 2022.02.10
JavaScript 객체의 동작방식  (0) 2022.02.10
JavaScript break/continue와 레이블  (0) 2022.01.20
JavaScript nullish병합연산자 '??'  (0) 2022.01.19

댓글