얼마전에 가비지 컬렉터에 관하여 개념을 정리하여 글을 적었다. 근데 정보를
찾다가 발견한거는 가비지 컬렉터와 가비지 컬렉션은 같은 단어인줄 알았는데
사실은 다른 개념이었다. 그래서 가비지 컬렉션에 관한 개념을 정리하고자 한다.
1. 가비지 컬렉션이란?
동적으로 할당된 메모리 영역을 찾아서 만약 사용하지 않는 영역이면 자동으로 해제하는
메모리 관리 기법이다. 사용하지 않는 영역은 포인터를 이용하여 변수 접근 가능메모리를 파악하여 찾아낸다.
이러한 가비지 컬렉션 과정을 수행하는 부분을 가비지 컬렉터(Garbage Collector)라고 부른다.
2. 가비지 컬렉션의 장점과 단점
장점
가비지 컬렉션은 메모리를 자동으로 관리해주기 때문에 사용자가 직접 메모리를 할당, 해제해주는 부분을
완벽하게 관리할 필요가 없다. 그렇기 때문에 메모리 누수가 발생하지 않으며 메모리를 포인터로 관리하기
때문에 유요햐지 않은 포인터에 접근을 방지할 수 있다.
단점
가장 큰 단점은 가비지 컬렉션이 언제 호출될지 모르는 암시적 호출의 특징을 지니고 있다는 것이다.
그렇기 때문에 실시간으로 실행되는 시스템에서는 치명적인 오류를 발생할 수 있다.
요약
가비지 컬렉션은 포인터 추적 방식을 이용하여 더 이상 사용하지 않는
동적 할당된 메모리 블럭을 찾아 다시 사용 가능한 자원으로 회수하는
메모리 관리 기법이다. 이러한 과정을 수행하는 것이 가비지 컬렉터다.
'TIL > C#' 카테고리의 다른 글
[C#] 배열, List, ArrayList, Dictionary의 차이점 (1) | 2023.11.02 |
---|---|
[C#] 박싱과 언박싱 (0) | 2023.11.01 |
[C#] 가비지 컬렉터 회피 전략 (0) | 2023.10.30 |
[C#] 가비지 컬렉터 (0) | 2023.10.27 |
[C#] Struct와 Class의 차이점 (0) | 2023.10.26 |