Garbage Collector

가비지 컬렉터와 메모리 할당 전략

출처 : JVM 밑바닥까지 파헤치기 3장

자바의 GC가 처리 해야 할 문제 세가지

어떤 메모리를 회수해야 하나?

자바의 참조 개념

  • 강한 참조 (strong reference) : 가장 전통적인 정의의 참조로, 프로그램 코드에서 참조를 할당하는 것. 강한 참조 관계가 남아있는 객체는 가비지 컬렉터가 절대 회수하지 않는다.

  • 부드러운 참조 (soft reference) : 유용하지만 필수는 아닌 객체. 메모리 오버플로가 나기 직전에 두 번째 회수를 위한 회수 목록에 추가된다.

  • 약한 참조 (weak reference) : 부드러운 참조와 비슷하지만 연결 강도가 더 약하다. 다음번 가비지 컬렉션까지만 살아있다.

  • 유령 참조 (phantom reference) : 참조 중에 가장 약하다. 객체 수명에 아무런 영향을 주지 않으며, 유령 참조를 통해 객체 인스턴스를 가져오는 것마저 불가능하다.

가비지 컬렉터를 측정하는 가장 중요 지표 세가지

  • 처리량

  • 지연 시간

  • 메모리 사용량

언제 회수해야 하나?

어떻게 회수해야 하나?

Last updated