Другие языки программирования и технологии

Можно ли 32 битное приложение заставить использовать больше 2гб памяти? Спасибо

больше двух - можно, больше трех с копейками - нет, адреса кончатся.

Николай: давай пруф-линк =)
Если не ошибаюсь, адрес - это int. Если размер Int 32 бита - несложно найти максимальное значение.
Виталий Фамилия :)
Виталий Фамилия :)
38 447
Лучший ответ
Николай: Да, адрес в 32 бита - это 4 га памяти. Но в виде по стандарту верхние 2 га всегда принадлежат системе и общие для всех программ, поэтому в винде реально скушать порядка 1.8-1.9 га, остальное занято системой.

Если в чистом процессоре (без этой вашей винды) с собственным менеджером памяти через PAE можно адресовать до 64 га памяти. Но в винде такое не получится, она тупо не даст создать свой такой менеджер.
Боже, как мне нравятся эти специалист "что-то слышал где-то там".

32-битность приложения не заставлять использовать только 32-битные адреса для памяти. Не самый современный 80386 процессор может адресовать 64 Гб виртуальной памяти.

Ограничение на размер памяти в Vista/7 - это маркетинг, в MS'овских же windowx 2003/2008 x32 работает PAE, позваоляя адресовать сколько хочешь памяти.
Собственно есть патчик (PAE Fix) для решения этой проблемы.

Теперь про "всегда принадлежат операционной системе" - снова сказки. Есть ( о боже, нет, нет, как так, ) другие операционный системы, кроме windows XP, в которой есть опция загрузки "/3GB"

Что касается использования большого количества памяти приложением, то в большинстве случаев это зависит от разработчика, но на java приложениях может просто стоять опция на максимальный размер кучи и permgen, в этом случае можно попробовать размеры увеличить.

http://xtcs.net/node/892

Похожие вопросы