본문 바로가기

내일배움캠프_TIL

11월 28일 TIL

가비지 컬렉터(Garbage Collector)

 

가비지 컬렉터는 프로그래밍 언어 런타임 환경에서 동적으로 할당된 메모리 중에서 사용되지 않는 객체를 찾아 해제하는 기능을 수행하는 프로그램이나 모듈이다

가비지 컬렉터는 메모리 누수를 방지하고, 사용되지 않는 메모리를 회수하여 시스템 자원을 효율적으로 관리한다

  • 객체의 동적 할당
    프로그램에서 객체를 동적으로 할당할 때, 메모리는 힙(Heap) 영역에 할당된다
    객체는 힙에 생성되고, 프로그램은 해당 객체에 대한 참조를 유지한다
  • 객체의 접근 가능성 분석
    가비지 컬렉터는 주기적으로 실행되며, 힙 내의 객체들을 접근 가능한지 분석한다
    접근 가능한 객체는 여전히 프로그램에서 참조되고 있는 객체이며, 이러한 객체들은 메모리에서 해제되지 않는다
  • 가비지 객체 식별
    접근 가능한 객체를 기준으로, 더 이상 참조되지 않는 객체(가비지)들을 식별한다
    가비지 객체는 프로그램에서 참조되지 않으며, 메모리를 차지하고 있는 객체이다
  • 가비지 수거
    가비지 컬렉터는 식별된 가비지 객체들을 메모리에서 해제한다
    이를 위해 가비지 컬렉터는 가비지 객체의 메모리를 회수하여 재사용 가능한 상태로 만든다

가비지 컬렉터는 개발자가 명시적으로 메모리 할당과 해제를 관리하는 번거로움을 덜어주고, 메모리 누수와 관련된 문제를 방지한다

그러나 가비지 컬렉션은 메모리 회수를 위한 추가적인 시스템 자원을 필요로 하며, 가비지 컬렉터가 실행되는 동안 프로그램의 실행이 잠시 멈출 수 있는 일시적인 정지 현상이 발생할 수도 있다

'내일배움캠프_TIL' 카테고리의 다른 글

11월 30일 TIL  (0) 2023.12.01
11월 29일 TIL  (0) 2023.11.29
11월 27일 TIL  (1) 2023.11.28
11월 23일 TIL  (0) 2023.11.23
11월 22일 TIL  (1) 2023.11.23