[C#] 23. 가비지 컬렉터의 장점과 단점

Connected Brain·2025년 4월 25일

면접 질문 대비

목록 보기
23/60

가비지 컬렉터의 장점과 단점에 대해 설명해주세요.

장점

  • 프로그래머가 직접 메모리를 해제하지 않아도 되므로, 실수로 인해 메모리가 해제되지 않아 발생하는 문제를 방지할 수 있음
  • 더 이상 참조되지 않는 객체를 메모리에서 제거하므로, 잘못된 메모리에 접근하는 것으로 발생하는 오류를 방지
  • 위 두 가지를 통해 메모리 누수를 방지하고 에러를 방지하여 프로그램의 안정성이 기여

단점

  • 프로그램이 실행되는 동안 GC도 실행되기 때문에, GC가 이루어지는 동안 일시적인 프로그램의 중단이 있을 수 있음
  • 해당 중단으로 인해 실시간으로 정보가 반영되어야 하는 프로그램의 경우 문제가 될 수 있음
  • GC가 동작하기 위한 추가 메모리 할당이 필요해 보다 많은 메모리 공간을 요구

해결책

  • 단점으로 인해 발생하는 문제 중 프로그램의 일시적인 중단을 줄이기 위해서는 GC의 발생을 최소화하는 것이 중요

GC의 발생을 줄이는 방법

  1. 자주 생성/소멸되는 객체를 재활용
  2. struct사용 (구조체는 힙 영역이 아닌 스택 영역에 저장되므로 GC의 영향 받지 않음)
  3. 지나치게 큰 객체의 사용을 최소화

0개의 댓글