루트에서 접근 가능한 메모리는 active, 나머지는 기비지
CMS Collectoractive root 에 원치 않는 참조가 포함되어있다면, 필요 없는 메모리가 할당된 만큼 메모리 누수가 발생
2단계 가비지 컬렉션 알고리즘
- Mark: GC 루트 목록을 생성합니다. 자바스크립트의 경우
window
객체가 루트로 작동하는데, 루트란 코드에서 참조되는 전역 변수를 뜻합니다. 모든 루트들은acitve
혹은alive
(가비지가 아님)로 표시되며, 이들의 자식들 또한 재귀적(recursively)으로 동일하게 처리됩니다. 즉, 루트에서 접근 가능하다면 가비지가 아니라고 판단됩니다.
- Sweep:
active
로 표기되지 않은 메모리를 모두 가비지로 간주하여 반환합니다.