Java 가비지 컬렉션은 더 이상 사용하지 않는 힙 메모리를 찾아 재사용하도록 하는 자동 메모리 관리 기능이다.
원리
HotSpot은 여러 수집기를 제공하며 처리량, 정지 시간, 메모리 사용량 사이의 목표가 다를 수 있다. 객체의 생존 상태를 추적하고 회수 작업을 수행한다.
Java 실행과 API |
|---|
JVM · javac · Java 바이트코드 · Java 가비지 컬렉션 · Java 제네릭 |
Java 인터페이스 · Java 예외 처리 · Java Stream API · Java Optional · Java 리플렉션 |
예시
대량의 임시 객체를 만드는 서버에서 GC 로그와 지연 시간을 함께 살펴보면 할당량과 수집 정책이 응답 시간에 미치는 영향을 분석할 수 있다.
주의할 점
도달 가능한 객체를 계속 보관하는 논리적 누수는 GC로 해결되지 않는다. 파일이나 연결의 종료도 별도 관리 대상이며 힙 크기를 늘리는 것만이 항상 해법은 아니다.