029_가비지 컬렉션(Garbage Collection)

Dec 21, 2023
029_가비지 컬렉션(Garbage Collection)

가비지 컬렉션(Garbage Collection)

  • JAVA의 자동 메모리 삭제 시스템을 뜻한다.
  • new 연산자에 의해 생기는 힙 메모리(heap memory)를 삭제해준다. → 이때 힙 메모리는 JVM이 가지고 있는 가용 메모리 이다.
  • 자동으로 삭제해줘서 편하지만 자바의 속도가 느려지는 단점이 있다. → 느려지는 이유는 가비지 컬렉션이 실행 될 때 자바의 모든 동작이 멈추기 때문이다.
자바처럼 가비지 컬렉션을 가진 언어를 ‘매니지드 언어’라 하며 이런 기능이 없는 언어를 ‘언매니지드 언어’라 한다. ’매니지드 언어’는 무겁기 때문에 가볍게 사용해야 하는 프로그램의 경우 ‘언매니지드 언어’를 사용한다

가바지 컬렉션의 동작 단계

  1. 참조되지 않은 객체가 식별되고 가비지 수집 준비가된 것으로 표시된다.
  1. 표시된 객체가 삭제된다.
  1. 선택적) 가비지 컬렉터가 객체를 삭제한 후 메모리를 압축 할 수 있다. → 이유는? 힙 메모리를 압축하면 새 객체에 메모리를 순차적으로 할당하기가 더 쉽다.
자바의 가비지 컬렉션에 대해 이해해야 하는 중요한 이유!! 비결정적이며 런타임에 가비지 수집이 발생할 때를 예측할 방법이 없다는 것이다!!

더티 체킹

  • 객체의 상태 변화를 감지하여 가비지 컬렉션의 대상인지 여부를 판단하는 기법이다.
Share article
RSSPowered by inblog