[JAVA] Garbage Collection (가바지 컬렉션) 개념과 동작과정

조진우·2023년 8월 18일
1

Java

목록 보기
6/6
post-thumbnail

Garbage Collection (가바지 컬렉션)

  • JVM에는 가비지 컬렉터가 존재
  • 가비지 컬렉터는 더이상 참조되지 않는 불필요한 메모리를 정리하는 역할
  • 가비지 컬렉션은 가비지 컬렉터가 메모리를 청소하는 과정을 말함

Stop-the-world

  • Stop-the-world는 GC를 실행하기 위해 JVM이 애플리케이션 실행을 멈추는 것을 말함
  • stop-the-world가 발생하면 GC를 실행하는 스레드를 제외한 모든 스레드가 작업을 멈춤
  • GC 작업이 끝난 후, 작업을 다시 시작.
  • 어떤 알고리즘을 사용하더라도 stop-the-world는 발생
  • GC 튜닝이란 stop-the-world의 시간 조절을 말함

Weak Generation Hypothesis와 heap 영역

  • Weak Generation Hypothesis : 객체들이 일정 시간 동안 살아남지 못하면 더 이상 사용되지 않을 가능성이 높다는 가정을 기반으로한 가비지 컬렉션 이론
  • 이 가정에 의해 Heap 메모리를 두 개 영역으로 나누어 관리하고 가비지 컬렉션을 수행
  • Young GenerationOld Generation
  • Young Generation은 새로 생성된 객체들이 할당. 대부분의 객체들은 일시적으로 생성되어 사용되고 빠르게 더 이상 참조되지 않음.
  • Young Generation은 작은 크기로 설계되며 비번한 가비지 컬렉션을 수행하여 살아남은 객체들만을 Old Generation으로 이동
  • Old Generation은 Young Generation에서 일정 시간 동안 살아남은 객체들이 이곳으로 이동. Old Generation에는 더 오래 살아남을 가능성이 있는 객체들이 위치하며, Young Genertaion 보다 드물게 가비지 컬렉션을 수행한다.
  • 가비지 컬렉션은 대부분의 객체가 짧은 수명을 갖는다는 특성을 이용하여 가비지 컬렉션의 효율성을 높이는데 목적
  • Young Generation의 가비지 컬렉션은 상대적으로 더 빈번하게 발생하며, Old Generation의 가비지 컬렉션은 상대적으로 더 드물게 발생
profile
The Top of Iceblog

1개의 댓글

comment-user-thumbnail
2023년 8월 18일

글 재미있게 봤습니다.

답글 달기