Programmer:)

[C#] Stack vs Heap (스택 vs 힙) 본문

공부(개발)/c#

[C#] Stack vs Heap (스택 vs 힙)

ryeggg 2022. 4. 10. 22:42
반응형

메모리는 한쌍처럼 주소-값을 가지고 있다.

Stack (스택)
-Value Type(값 형식)이 저장되는 공간
-프로그램을 실행하는데 필요한 메모리 공간으로 지역변수, 매개변수(파라미터) 리턴값 등이 저장된다.
-미리 그 크기를 파악할 수 있기에 컴파일 타임에 결정된다.
-함수가 종료되는 시점에 자동의 정리됨.
-사용할 수 있는 메모리의 크기가 작고 한정적임.
-가비지컬렉션의 의해 관리되지 않기 때문에 성능상 많은 장점이 있다.

Heap (힙)
-Reference Type(참조 형식)이 저장되는 공간
-C#에서 new 예약어로 생성하는 모든 참조형 객체는 힙에 할당됨.
-런타임에 할당되는 영역
-스스로 데이터 제거 불가.
-delete , 가비지컬렉션등의 메모리 관리가 필요 (할당만 한 후 해제하지 않으면 메모리 누수 발생)
- 많은 메모리 크기를 가질 수 있다.

반응형
Comments