Как я могу выделить память в Windows, но не использовать ее до первого касания?Сделать большие ассигнования автоматически фиксированными при первом касании
Я вижу, что VirtualAlloc
позволяет мне резервировать диапазон памяти, но мне тогда необходимо вручную зафиксировать разделы этой памяти перед использованием. Я бы хотел, чтобы это было автоматически, когда я впервые обратился к нему.
Кроме того, если возможно, я не хочу, чтобы память была обнулена перед тем, как была зафиксирована.
(Кстати, это может быть сделано на Linux, установив личное отображение памяти куска/разработчика/ноль)
Проблема в том, что это позволит мне сделать для которых достаточно свободной виртуальной памяти. Я хотел бы сделать гигантские распределения (величины больше, чем RAM + swap). Понятно, что это произойдет в какой-то момент в будущем, если я коснусь слишком большого количества страниц, но я не против этого. – pauldoo
Документы предполагают, что VirtualAlloc будет делать именно то, что вы хотите, я думаю? Файл страницы будет расти по мере необходимости, если позволит дисковое пространство, поэтому это не является жестким пределом. Что касается свободной виртуальной памяти, вы связаны тем, что все, что вы делаете, потому что это предел в адресном пространстве. (Вы можете добавить еще несколько бит в 32-битный режим, используя PAE - Windows поддерживает это, но я никогда не использовал его.) –
Я не хочу ограничиваться дисковым пространством (например, ram + swap). Я хочу чтобы сделать поистине гигантские распределения на 64-битной основе, и только зафиксировали страницы и увеличили пространство подкачки, когда я касаюсь их. – pauldoo