2008-10-14 2 views
2

В Windows Server 2003, Enterprise Edition, SP2 (/ 3GB переключатель не включен)Когда процесс Windows заканчивается из памяти?

Как я понимаю, и я могу ошибаться, максимальная адресуемая память для процесса составляет 4 ГБ.

Это 2 ГБ частных байтов и 2 ГБ виртуальных байтов?

У вас возникли ошибки «из памяти», когда достигнут предел личного байта или виртуального байта?

ответ

4

Правильно, что максимальное адресное пространство процесса составляет 4 ГБ, в некотором смысле. Половина адресного пространства для каждого процесса обрабатывается операционной системой. Это можно изменить с помощью переключателя 3 ГБ, но это может привести к нестабильности системы. Таким образом, мы оставляем 2 ГБ адресной памяти для использования в процессе самостоятельно. Ну, не совсем. Оказывается, что часть этого пространства воспринимается другими вещами, такими как DLL, другим распространенным кодом. Фактическая память, доступная вам как программисту, составляет около 1,5 ГБ - 1,7 ГБ.

Я не уверен, как вы можете справиться со случайным движением выше этого предела, но я знаю игры, которые по этой причине падают в больших многопользовательских картах. Другое дело отметить, что 32-битная программа не может использовать больше, чем адресное пространство 2 ГБ в 64-битной системе, если только они не активируют флаг компоновщика/LARGEADDRESSAWARE: YES.

0

Марк Руссинович начал серию постов на этом .. Pushing the Limits of Windows: Physical Memory

Хотя 4GB является лицензированным предел для 32 -битных клиентских SKU, эффективный предел фактически ниже и зависит от набора микросхем системы и подключенных устройств. Причина в том, что карта физического адреса включает в себя не только ОЗУ, но и память устройства, а системы x86 и x64 отображают всю память устройства под границей адреса 4 ГБ, чтобы оставаться совместимыми с 32-разрядными операционными системами, которые не знают, как обращаться адресов более 4 ГБ. Если система имеет 4 ГБ оперативной памяти и устройства, такие как видео, аудио и сетевые адаптеры, которые реализуют окна в память своего устройства, сумма которых составляет 500 МБ, 500 МБ 4 ГБ ОЗУ будет находиться выше границы адреса 4 ГБ.

0

Вы можете получить доступ только к 2 ГБ общей памяти (без переключателя 3Gb) на 32-битных платформах Windows.

Вы можете запускать несколько 32-битных виртуальных машин на 64-битной ОС, чтобы каждое приложение имело доступ к максимально возможной памяти, если ваш компьютер имеет более 4 ГБ.

Многие люди только начинают ударять по этим барьерам, я думаю, это проще, если ваше приложение находится в .net или Java, так как виртуальные машины с радостью подходят к 32 ГБ памяти на 64-битных ОС.

0

На 32 бита, если для виртуальной памяти достаточно физической памяти и дискового пространства, объем памяти составляет около 3 ГБ, поскольку ядро ​​резервирует адресное пространство выше 0xC0000000 для себя. В 64-битном ядре, использующем 64-битное приложение, предел составляет 8 ТБ.

Для получения более подробной информации ознакомьтесь с MSDN - Memory Limits for Windows Releases

0

Максимальной адресуемой памятью для 32-битной машины 4 Гб, для 64-битной машины вы можете обратиться нагрузками больше. (Хотя некоторые 32-битные машины имеют системы расширения для доступа к большему количеству, но я не думаю, что это стоит беспокоиться или рассматривать для использования).

Вы получаете ошибки в памяти при достижении виртуального предела. В Windows Server 2003 диспетчер задач сообщает вам лимит на вкладке производительности с надписью «Limit Commit Charge».

Смежные вопросы