2012-02-09 2 views
0

저는 매우 많은 메모리를 사용하는 C# 데스크톱 응용 프로그램이 있습니다. 내 질문은 다음과 같습니다. 단일 응용 프로그램의 경우 컴퓨터의 RAM 용량을 늘리거나 동일한 응용 프로그램을 여러 개 지원하는 것이 더 좋습니다. 시각?응용 프로그램에서 사용할 수있는 메모리 제한

내 운영 체제는 Windows 7 (64 비트)입니다.

더 많은 것을 설명하기 위해, 내가 알고있는 것은 프로세스에 사용 가능한 메모리가 스택 (스레드 당)과 힙이라는 것입니다. 스택은 컴퓨터의 RAM과 독립적이며 일반적으로 크기를 결정하는 운영 체제입니다. 그러나 힙이 훨씬 크고 힙에 큰 개체를 배치하는 것이 좋습니다 (C#의 new은 힙에서 메모리를 사용합니다).

다시 질문 : 컴퓨터의 RAM을 확장해도 각 프로세스에서 사용할 수있는 힙이 확장됩니까? 그리고 각 프로세스에 대한 힙 (heap)이 있습니까? 아니면 단일 힙일까요?

답변

2

첫 번째로, "프로세스 주소 공간"과 같은 기본 개념과 프로세스 및 가상 메모리가 기본 수준에서 작동하는 방식을 조금이라도 다룬다면 정말 도움이 될 것이라고 생각합니다. 이게 좋을 것 같습니다. -> [1] : http://duartes.org/gustavo/blog/post/anatomy-of-a-program-in-memory

각 프로세스에는 고유 한 프로세스 주소 공간이 있으므로 자체 힙이 있습니다. 힙은 동적 메모리 할당을 충족시키는 "가상 주소 공간"의 일부입니다. 또한 OS가 수용 할 수있는 주소 지정 가능 메모리 범위에 따라 에 달려 있습니다. 예를 들어, 32 비트 시스템에서 최대 주소 지정 가능 범위는 4GB를 초과 할 수 없습니다.

더 많은 RAM을 추가하면 스 래싱과 같은 것들을 줄임으로써 약간의 차이를 만들 수 있습니다 (야간이나 하루가 아닌).

+0

+1 멋진 기사. 고맙습니다. 네 말이 맞아. 우리 운영 체제 코스가 중요한 개념을 많이 잃어 버렸어. – OmarOthman

관련 문제