Language/C#

Garbage Collection

비비이잉 2022. 12. 22. 10:25
반응형

Garbage Collection은 

직역하면 쓰레기 수집으로 메모리 관리 기법 중 하나로, 동적 할당 된 메모리 영역 가운데 더이상 사용할 수 없게 된 영역을 탐지하여 자동으로 해제하는 기법이다. 여기서 더 이상 사용할 수 없게 된 영역이란, 어떤 변수도 가르키지 않게 된 영역을 의미한다. 

 

장점

Gargabe Collection이 지원되는 환경에서는 프로그래머가 동적으로 할당된 메모리 영역의 전체를 완벽하게 관리할 필요가 없어진다. 가비지 컬렉션은 다음과 같은 버그를 줄이거나, 완전히 막을 수 있다. 

유효하지 않은 포인터 접근 : 이미 해제된 메모리에 접근하는 버그

이중 해제 : 이미 해제된 메모리를 또 다시 해제하는 버그

메모리 누수 : 더 이상 필요하지 않은 메모리가 해제되지 않고 남아있는 버그 

 

단점 

-어떤 메모리를 해제할지 결정하는 데 비용이 든다. 객체가 필요 없어지는 시점을 프로그래머가 미리 알고 있는 경우에도 쓰레기 수집 알고리즘이 메모리 해제 시점을 추적해야하므로 이 작업은 오버헤드가 된다. 

- 쓰레기 수집이 일어나는 타이밍이나 점유시간을 미리 예측하기 어렵기 때문에 프로그램이 예측 불가능하게 일시적으로 정지할 수 있다. 이러한 특성은 실시간 시스템에 적합하지 않다.

-할당된 메모리가 해제되는 시점을 알 수가 없다. 

 

 

https://guslabview.tistory.com/186

 

[.NET] C# 스택(Stack)과 힙(Heap) 메모리의 차이

오늘은 스택과 힙메모리의 차이에 대해서 알아보도록 하겠습니다. C#에서도 당연히 스택기반의 메모리와 힙 기반의 메모리를 제공합니다. C#에서 이 메모리들의 구조를 확인하기 위해서는 먼저

guslabview.tistory.com

 

반응형

'Language > C#' 카테고리의 다른 글

Cache 파일 캐시 시스템  (0) 2022.10.31
[ 벤치마크 ] 부하분산 체크  (0) 2022.10.26
modal form 만들기  (0) 2022.10.24
모달 / 모달리스  (0) 2022.10.24
[TDD]  (0) 2022.10.18