Как убедиться, что отображаемые в память файлы всегда находятся в оперативной памяти - PullRequest
1 голос
/ 18 февраля 2012

Можно ли создать файл отображения памяти для межпроцессного взаимодействия с гарантией того, что содержимое всегда хранится в ОЗУ и не записывается в файл подкачки?

В настоящее время я работаю над заказным приложением OLAP. Основная идея состоит в том, чтобы иметь один процесс, такой как банк памяти, который содержит все данные, и несколько рабочих процессов, которые фактически выполняют вычисления. Хотя обычно все работает очень слаженно, время от времени происходит сбой в производительности, когда работник пытается создать представление для части файла, которая некоторое время не использовалась, - отсюда мой вопрос.

Количество оперативной памяти не является проблемой (Windows / 64 бит) - мы просто не знаем, возможно ли остановить систему от использования файла подкачки.

1 Ответ

1 голос
/ 18 февраля 2012

Возможно, вы ищете функцию VirtualLock.

Блокирует указанную область виртуального адресного пространства процесса в физической памяти, гарантируя, что последующий доступ к региону будет не несет ошибки страницы.

Предостережение лектора .

...