Garbage Collection
ref: https://blog.siner.io/2021/12/26/garbage-collection/ Mark-and-Sweep 전통적인 가비지 컬렉션 기법 중 하나. 프로그램 실행 중 동적으로 할당된 메모리들에 대해 주기적으로 sweeping을 진행하며 메모리를 관리함. 과정 Mark: 프로그램이 도달할 수 있는 모든 객체에 대해 탐색을 시작하며(유향그래프 형태), 직접 또는 간접적으로 참조 가능한 객체에 “표시"를 남긴다. 이는 트리 탐색과 비슷한 형식으로 이루어지며, 모든 루트 객체에서 시작해 연결된 객체를 찾아나가는 과정을 거친다. mark 단계에서 root set 전체를 순회하며 flag를 ‘사용중’상태로 설정한다. 현재 참조가 되어 있는 객체들은 모두 ‘사용중’ flag를 가지게 된다....