본문 바로가기

.NET/CLR

닷넷에서의 메모리 할당 프로세스


오늘은 메모리 할당 프로세스에 대해서 얘기해 보고자 합니다.

아래의 flow chat를 봐주세요 

 
위에 플로우차트를 보면 쉽게 아리라 생각됩니다.

먼저 메모리 할당 요청이 왔을경우. 

CLR heap Manager라는 놈이 위와 같이 처리를 하게 되는데 먼저 할당된 0 Gen Heap (budget을봄)용량을 봐서 너무 용량이 적다 하면 GC를 불러 청소를 시킵니다.  그렇지 않을 경우는 메모리 할당을 하게 되는데 NT Heap memory와는 달리 sement 안에 맨마지막 object 다음에 할당이 되게 됩니다. 

그리고 finalize 메서드가 있는 object를 체크하기 되는데 이건 GC에 의해서 따로 관리가 됩니다.