[Java] Garbage Collector


[Java] Garbage Collector

Garbage Collector = GC - JVM의 Heap 영역에 남아있는 더이상 사용하지 않는(=Unreachable 한) 객체를 garbage라고 하며, 이를 제거하는 작업을 말합니다. 가비지 컬렉터는 두 가지의 가설을 전제로 설계되었습니다. 1. 대부분의 객체는 금방 Unreachable 상태가 된다. -> 금방 Garbage가 된다. 2. Old 영역의 객체가 Young 영역의 객체를 참조하는 일은 아주 적다. GC의 동작 순서는 Mark and Sweep으로, 다음과 같습니다. 1. Mark: 모든 변수를 스캔하면서 각각 어떤 객체를 참조되고 있는지 마킹합니다. Reachable 객체가 참조하고 있는 객체도 마킹합니다. 2. Sweep: Unreachable. 즉 마킹(참조)되지 않은 객체를 Heap에서 제거합니다. 3. Compact: 알고리즘에 따라서 존재하는 과정으로, Sweep 후 분산된 객체들을 Heap의 시작 주소로 모아 메모리의 분산화를 막아줍니다. Heap...


#GC #heap #java #가비지컬렉터

원문링크 : [Java] Garbage Collector