Ограничения на доступную память для приложений - PullRequest
0 голосов
/ 09 февраля 2012

У меня настольное приложение C # с большим объемом памяти, и мой вопрос: лучше ли увеличить ОЗУ компьютера (для одного приложения) или просто лучше одновременно поддерживать много приложений?

Моя операционная система - Windows 7 (64-разрядная).

Чтобы объяснить больше, я знаю, что доступной для процесса памятью является стек (на поток) и куча.Стек не зависит от оперативной памяти компьютера и, как правило, его размер определяется операционной системой.Но куча намного больше, и рекомендуется помещать большие объекты в кучу (это то, что new в C # делает, она берет память из кучи).

Итак, вопрос снова:расширение оперативной памяти компьютера расширить кучу, доступную каждому процессу?И есть ли куча для каждого процесса, или это всего лишь одна куча?

1 Ответ

2 голосов
/ 18 февраля 2012

Во-первых, я думаю, что было бы действительно полезно, если бы вы немного погрузились в понятия операционной системы, такие как «адресное пространство процесса» и как процессы и виртуальная память работают на базовом уровне.Это кажется хорошим -> [1]: http://duartes.org/gustavo/blog/post/anatomy-of-a-program-in-memory

Каждый процесс имеет свое собственное адресное пространство и, следовательно, свою собственную кучу.Куча является частью «виртуального адресного пространства», которое обслуживает динамическое распределение памяти.Это также зависит от диапазона адресуемой памяти, которую может разместить ваша ОС.Например, в 32-битной системе максимальный адресуемый диапазон никогда не может превышать 4 ГБ.

Добавление дополнительной оперативной памяти может иметь некоторое значение (хотя не ночное и дневное время), уменьшая такие вещи, как перебивание.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...