Re[3]: Как выделить одному приложению 5 ГБ памяти?
От: SergH Россия  
Дата: 30.12.07 18:26
Оценка:
Здравствуйте, Skipper_N, Вы писали:

S_N> Программа на С++ и память для массива выделяется обычным, стандартным оператором new .


Ага. Это значит, что для выделения памяти используется два уровня — апи операционной системы и куча C++. Проблема может быть как там, так и там.

S_N>Что такое VirtualAlloc[Ex] и с чем его едят?


Ну, про виртуальное пространство ты всё правильно писал, значит с понятием знаком. В виртуальном пространстве память резервируется страницами. VirtualAlloc[Ex] это функции выделения памяти самого низкого уровня — на уровне страниц виртуальной памяти. Все остальные неявно её используют. Я предлагаю использовать явно, т.е. написать свою небольшую кучу.

Подробнее про функцию — см MSDN.

S_N>И еще вопрос. Если Вы думаете, что дело в типе выделения, то Вы думаете, что проблема не в операционке?

S_N>Мне почему-то казалось, что возможно, винда не дает приложению более 3 ГБ.

Я не знаю. Я могу только предполагать. Я не работал с 64-х разрядной виндой.
Но, возможно, в данном случае дело в рантайме C++.
Делай что должно, и будь что будет
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.