[C#] 24. 가비지 컬렉터의 세대

Connected Brain·2025년 4월 25일

면접 질문 대비

목록 보기
24/60

가비지 컬렉터의 세대 개념에 대해 설명해주세요.

한 줄 요약

세대 개념 : GC 자체가 비용이 들어가는 과정이므로 이를 효율적이게 실행하기 위해 객체의 생존 기간에 따라 세대를 구분하여 실시. 가장 짧은 수명을 가지는 것이 0세대이고, 이전 세대에서 생존한 객체들이 1세대, 2세대로 이동
LOH : 8만 5천 바이트를 초과하는 객체들은 이를 해제하는 비용도 커 GC 빈도가 적게 발생하도록 구분해서 관리

세대 개념

  • GC를 실시하기 위해서는 힙 영역에 있는 객체들이 참조되고 있는지 여부를 확인하는데, 이를 효율적으로 실시하기 위해 생존 기간에 따라 세대를 구분하여 실시한다.

0세대

  • 가장 최근에 생성된 객체들이 할당되는 세대, 수명이 짧고 금방 회수되는 객체들
  • GC가 가장 빈번하게 발생하는 세대

1세대

  • 0세대에서 생존한 객체들이 이동, 0세대 보다는 긴 수명을 가짐

2세대

  • 1세대에서 생존한 객체들이 이동, 긴 수명을 가지므로 GC가 가장 덜 빈번하게 발생함

Large Object Heap(LOH)

  • 85,000바이트를 초과하는 객체를이 위치한 세대, 메모리가 커 GC 비용이 크므로 적게 GC가 발생하도록 하기 위하여 구분하여 관리

0개의 댓글