프로그래밍/기본기ㆍ자료구조
2021. 1. 31.
C# GC의 이해 및 메모리 최적화
# GC (가비지 컬렉터 - Garbage Collector) 가비지 컬렉터는 Java나 C#에서 메모리를 자동으로 해제해주는 기능이다.(이하 GC) C#은 C/C++의 메모리 할당보다 빠르다. C/C++처럼 자유 메모리 블록을 검사할 필요가 없으며 단순히 포인터 값을 증가 시키는 것이 전부이기 때문이다. C#의 메모리 할당 방식은 메모리 조각이 발생하지 않는 방식이다. (불변 객체인 String 같이 작은 크기의 객체들이 힙 상에 아주 많이 존재하기 때문에 이러한 형태의 방식으로 만들어졌다) GC는 특정 조건을 만족하는 상황이 되면 현재 쓰레드들을 모두 중단시키고 GC 쓰레드를 실행시킨다. (GC쓰레드는 평소에 아무것도 안하고 잠들어 있다) GC는 세대별로 구분을 할 수가 있는데 힙 상의 객체를 객체의..