JavaScript
JavaScript 가비지 컬렉션
하이방가루
2022. 2. 10. 19:16
728x90
반응형
자바스크립트에서 메모리를 관리하는 시스템이다.
엔진에서 자동으로 실행하는 것으로 개발자가 제어할 수 없다.
저수준 최적화가 필요한 상황일 때, 알 필요가 있다.
기본적으로 '도달가능성(reachability)'을 검사하여 도달할 수 없는 값을 메모리에서 삭제한다.
내부 알고리즘
- 루트(root) 정보를 수집하고 이를 기억한다.
- 루트가 참조하고 있는 모든 객체를 방문하고 이것들을 기억한다.
- 기억된 모든 객체에 방문하고, 그 객체들이 참조하는 객체도 기억한다. 이 때, 한번 기억한 객체는 다시 방문하지 않는다.
- 루트에서 도달 가능한 모든 객체를 방문할 때까지 3의 과정을 반복한다.
- 기억되지 않은 모든 객체를 메모리에서 삭제한다.
루트의 종류
- 현재 함수의 지역 변수와 매개변수
- 중첩 함수의 체인에 있는 함수에서 사용되는 변수와 매개변수
- 전역 변수
- 기타 등등
728x90
반응형