가비지 컬렉터 (Garbage Collector)

최장범·2023년 11월 7일

공부

목록 보기
12/24

가비지 컬렉터

  • 메모리 관리를 위해 사용되는 중요한 기능
  • 더 이상 사용되지 않는 메모리를 자동 식별, 해제하여 메모리를 효율적으로 관리함
  • C#에서는 가비지 컬렉터를 지원한다
  • 언어와 런타임 환경에 따라 가비지 컬렉션 시간이나 주기가 다를 수 있다.

장점

  • 메모리의 누수 방지

    • 사용되지 않는 메모리를 식별해 누수를 방지한다. 프로그래머는 메모리 관리를 신경쓰지 않고 코드를 작성할 수 있다는 장점이 있다.
  • 편의성

    • 위의 내용과 상이하게 프로그래머가 메모리관리에 대해 신경을 쓰지 않기에 다른곳에 더 집중이 가능하다.

가비지 컬렉터를 회피하는 방법

  • 메모리 관리에 주의
    • 불필요한 객체 생성을 피하고, 사용 후 적절하게 해제
  • 사용하지 않는 객체 해제
    • 더 이상 필요하지 않은 객체들은 명시적으로 null로 설정하여 참조를 해제하고, 가비지 컬렉터가 해당 객체를 수거하도록 유도
  • 대규모 객채 풀링 (Object Pooling)
    • 반복적으로 생성 및 해제되는 객체를 미리 생성해두고 재사용함으로써 가비지 컬렉션을 회피
  • 비관리 코드 사용 (Unmanaged Code Usage)
    • 가비지 컬렉터가 관리하는 .NET 프레임워크의 관리 코드가 아닌, 비관리 코드를 사용하여 메모리 관리를 수행
  • Weak references사용
    • 가비지 컬렉션의 대상이 되지 않도록 하여 메모리를 회피

0개의 댓글