Как заблокировать страницы в памяти с помощью WinAPI? - PullRequest
8 голосов
/ 17 декабря 2009

Мне нужно, чтобы страницы памяти приложения не выгружались из ОЗУ в Windows. Существует ли функция WinAPI, эквивалентная POSIX mlockall() для достижения этой цели?

Ответы [ 3 ]

9 голосов
/ 17 декабря 2009

Да, VirtualLock (). Существует ограничение на количество страниц, которые вы можете заблокировать, вы не можете загружать ОЗУ. Подробности в статье MSDN.

2 голосов
/ 17 декабря 2009

Я должен спросить, зачем вам это нужно? Если бы каждое приложение считало, что его страницы настолько важны, что их никогда не нужно выкладывать, это было бы огромной тратой памяти.

Если страницы используются, они не будут отправлены в файл подкачки, и если они не используются, зачем их хранить? Поверь в Mm, это написал очень умный парень :)

0 голосов
/ 17 декабря 2009

Привет, вы можете установить опцию Windows блокировки страниц в памяти. Обычно этот параметр в основном используется SQL Server, но работает и для других приложений. Проверьте этот сайт на MSDN

включить адресацию оконных расширений (AWE) для вашего приложения. Смотрите эту ссылку на MSDN

...