다음을 통해 공유

C# 프로그램 실행을 했을 때 메모리에서 어떻게 이루어지는지 공부하는데 어려워서 정리가 안되네요. 그리고 C# 컴파일 구조 등등도...

익명
2023-08-26T12:46:24+00:00

안녕하세요, C# 메모리를 대해서 공부 중인 대학생 4학년 입니다.

1.인터넷에 찾아보니까 프로그램 안에 코드 영역, 데이터 영역, 힙, 스택이 있는데 C# 프로그램은 다르다고 합니다.

c# 4.0 - what is the difference between object and loader heap in .net 4.0 - Stack Overflow 에서는

<원문>

heap memory is divided into to parts,object heap and loader heap(also known as high frequency heap).All non static reference type are stored on object heap and all static object(either reference type or value type) are stored in loader heap. Gc never work on loader heap thats why they initilized only once and remain in memory throught the application.

<해석>

힙 메모리는 두 부분으로 나뉩니다.

"객체 힙"과 "로더 힙" (또는 고주파 힙이라고도 함)으로 나눌 수 있습니다.

모든 정적이 아닌 참조 유형은 객체 힙에 저장되며,

모든 정적 객체 (참조 유형이든 값 유형이든)은 로더 힙에 저장됩니다.

가비지 컬렉터(GC)는 로더 힙 에서 작업하지 않으므로 이러한 객체는 애플리케이션이 실행되는 동안 한 번만 초기화되고 메모리에 유지됩니다.

라고 되어 있어서 그럼 C# = 코드 영역, 데이터 영역, 힙(객채 힙, 로드 힙), 스택이 있는데

제가 배운 걸로는 데이터 영역에 정적 객채들이 저장된다고 알고 있는데

그럼 정적 객체들과 함수들은 로드 힙에 저장되고 데이터영역에는 뭐가 저장되는 건가요?

  1. C# 컴파일 구조는 어떻게 되어 있는 건가요?
  2. C#과 .Net Framework의 관계 CLR등등, GC가 관리하는 오브젝트힙(GC가 관리)과 로더 힙(CG가 관리하지 않음) 등등 설명가능 한가요?
가정용 Windows | 기타 | 앱

잠긴 질문. 이 질문은 Microsoft 지원 커뮤니티에서 마이그레이션되었습니다. 질문이 도움이 되었는지 여부에 대해 응답할 수는 있지만, 메모나 회신을 추가하거나 질문을 따를 수는 없습니다.

댓글 0개 설명 없음

답변 2개

정렬 기준: 가장 유용함
  1. 익명
    2023-10-02T00:47:00+00:00

    안녕하세요 저도 매우 동일한 궁금증을 가지고 있습니다.

    혹시나 답변을 받으셨거나 정확한 설명을 들으셨다면 저에게도 알려주실 수 있을까요??

    부탁드립니다. 감사합니다

    이 대답이 도움이 되었나요?

    댓글 0개 설명 없음
  2. DaveM121 891.6K 평판 포인트 독립 자문가
    2023-08-26T13:23:22+00:00

    저희는 사용자를 위하여 번역된 내용을 제공하고 있습니다. 문법적 오류가 있더라도 양해바랍니다.

    안녕하세요, 저는 Dave입니다.

    죄송 합니다만, 커뮤니티는 귀하의 질문 (C # 프로그래밍)의 범위로 인해 소비자 포럼 일뿐입니다. 이 질문을 Technet (개발자 포럼)의 자매 포럼에 게시 해 주시겠습니까?

    여기에서 C# 프로그래밍 전문가의 호스트에 액세스할 수 있으며 이 질문에 대한 지식이 풍부하고 빠른 답변을 얻을 수 있습니다.

    https://social.technet.microsoft.com/Forums/ko-...

    이 대답이 도움이 되었나요?

    댓글 0개 설명 없음