2012년 12월 19일 수요일

Stack Heap,,,메모리공간

아래와 같은 메소드와 변수들이 있을경우 메모리에서는 도대체 무슨일이 일어나는가??
출처 http://www.codeproject.com/Articles/76153/Six-important-NET-concepts-Stack-heap-value-types
다음에는 new로 인스턴스를 두개 생성했을경우의 그림이다.

이렇게 스택과 힙 두영역에 나누어 지고
힙영역의 메모리가 가득찬다면 C#? 닷넷에서는
Garbage Collecter가 자동적으로 메모리를 관리해준다.
사용하지 않거나 사용한지 오래된 것은 GC가 알아서 처리하여 메모리를관리해준다고 한다.
하지만 직접적인 GC 호출은 시스템에 성능저하를 유발할수 있어 불가피한상황이 아니라면 피해야한다고 함.

GC 사용을 하지말라면???
IDispose, Finalize 를 구현하자!!! 단, C#에서는 소멸자를 사용하지말자?
예를 들자면 대용량의 객체를 사용한뒤 시스템 부하를 줄여야 하는상황..

다음의 코드는 인자로 받아진 object의 메모리 주소를 알아보는 코드다
{

댓글 없음:

댓글 쓰기