카테고리 없음
[CS]Garbage Collection
Dahyee
2022. 7. 30. 13:25
GC
Garbage Collection/ Garbage Collector
- 메모리 관리 기능 중 하나.
- 우리가 따로 설정하지 않아도 자바스크립트 엔진이 알아서 가비지 컬랙터를 작동시킨다.
- 메모리 위에 **도달 가능한(reachable)**한 값과 도달 불가능한(unreachable) 값이 있다.
- 항상 도달 가능한 값 (Root): 현재 함수의 지역변수와 매개변수, 전역 변수 등
family.father 객체를 삭제하고 family.mother.husband 객체를 삭제한다면 아래와 같이 된다.
- 항상 도달 가능한 값(root)과 참조당하는 방향으로 연결되어 있어야 GC에 의해 삭제되지 않는다.
GC의 동작 알고리즘
- mark-and-sweep
- Root에서 참조 가능한 객체를 마크(mark)하고 다시 그 객체에서 참조가능한 객체를 마크하는 방식으로 더 이상 참조할 객체가 없을 때까지 진행.
- mark가 되지 않은 객체를 삭제하는 알고리즘.
이미지출처:가비지 컬렉션 (javascript.info)