32-битные приложения на 64-битных ОС (windows) - PullRequest
2 голосов
/ 02 сентября 2011

Мне нужна помощь в понимании того, как 32-разрядные приложения используют память в 64-разрядной ОС.

32-разрядное приложение может использовать 2 ГБ памяти в 64-разрядной ОС, верно?Означает ли это, что 32-разрядные 32-разрядные приложения, работающие параллельно, могут адресовать 6 ГБ памяти ... Или 32-разрядные 32-разрядные приложения должны совместно использовать 2-4 ГБ 32-разрядной памяти, которую имеет ОС?Аналогично, если у меня есть веб-сервис, который скомпилирован как 32-битный, работающий под IIS на 64-битной машине.До тех пор, пока один запрос к этому веб-сервису всегда занимает менее 2 ГБ памяти, есть ли смысл перекомпилировать в 64-битную версию?Моя теория заключается в том, что IIS создает новый процесс для каждого запроса, поэтому весь пул процессов сможет использовать всю память, имеющуюся на 64-битной машине, 8, 15 или 20 гигабайт или что угодно.

Позвольтея знаю твои мысли, спасибо

1 Ответ

3 голосов
/ 02 сентября 2011

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

На самом деле, есть опция компилятора, которая позволяет 32-битным программам использовать до 3 ГБ в Windows.Если производительность не важна, то нет особых причин использовать 64-битную версию.

...