S_B>>А если почитать здесь?
L>Почитал, и всё таки я не всё понимаю. Что у каждого процесса своя виртуальная память и каждый процесс может выделить 2 Гб я понимаю. /3GB увеличивает user space в виртуальной памяти для каждого процесса или он делит какое-то общее для всех процессов область? Что-то запутали меня эти статьи.
Там в основном демагогия, кроме
http://blogs.msdn.com/oldnewthing/archive/2004/08/12/213468.aspx
L>Т.е. если включить /3gb то когда мы смотрим сколько памяти для процесса доступно, то получаем 3Гб. Но когда я пытаюсь алоксировать, то получаю не больше 2. Я не рассматриваю filemapping.
L>Вообще я где-то в msdn наталкивался, что надо какие-то директивы включать в си, чтобы это работало...
L>Т.ч. спасибо за информацию, была полезна, но можно еще чуть подробнее
Это не в С, это опция PE. Директива линкера /LARGEADDRESSWARE. Кстати, не факт, что получится аллоцировать сильно больше 2 гб непрерывно.
Я включаю опцию /3Gb в windows 2003, чтобы можно было алоксировать больше 2 Гб памяти, но VirtualAlloc по-прежнему позволяет алоксировать не более 2 Гб. Полагал, что это из-за фрагментации памяти, но и маленькими кусками не получается выделить больше.
Читал msdn, но ничего толкового не нашёл.
01.02.06 22:23: Перенесено модератором из 'C/C++' — Павел Кузнецов
Здравствуйте, legofrend, Вы писали:
L>Я включаю опцию /3Gb в windows 2003, чтобы можно было алоксировать больше 2 Гб памяти, но VirtualAlloc по-прежнему позволяет алоксировать не более 2 Гб. Полагал, что это из-за фрагментации памяти, но и маленькими кусками не получается выделить больше.
L>Читал msdn, но ничего толкового не нашёл. 
А если почитать
здесь?
Здравствуйте, Sergeant_BY, Вы писали:
S_B>А если почитать здесь?
Почитал, и всё таки я не всё понимаю. Что у каждого процесса своя виртуальная память и каждый процесс может выделить 2 Гб я понимаю. /3GB увеличивает user space в виртуальной памяти для каждого процесса или он делит какое-то общее для всех процессов область? Что-то запутали меня эти статьи.
Т.е. если включить /3gb то когда мы смотрим сколько памяти для процесса доступно, то получаем 3Гб. Но когда я пытаюсь алоксировать, то получаю не больше 2. Я не рассматриваю filemapping.
Вообще я где-то в msdn наталкивался, что надо какие-то директивы включать в си, чтобы это работало...
Т.ч. спасибо за информацию, была полезна, но можно еще чуть подробнее