1

Мне нужно знать, как изменить "приоритет памяти" процесса. Мне нужна утилита, которая меняет приоритет памяти процесса. Некоторые интенсивные программы могут по-прежнему приводить к зависанию моих важных программ, отправляя их в файл подкачки. Мне нужно остановить это, и я должен быть в состоянии выбрать приоритет EXACT любой программы. Дополнительно я использую Windows Vista.

Для справки я гуглил, ничего не нашел. Обратите внимание, что это не "приоритет процесса" и не приоритет процессора. Кто-нибудь знает бесплатный инструмент, который делает это?

3 ответа3

1

Насколько я знаю, нет способа гарантировать, что процесс остается в памяти в Windows. Существует Win32 API, называемый VirtualAlloc(), который выделяет память таким образом, что менеджер памяти не будет пытаться перенести ее на диск. Это должно быть закодировано в приложении и не может быть установлено любой программой, насколько я знаю. Вероятно, вы получите гораздо лучшие результаты, увеличив количество оперативной памяти на вашем компьютере.

1

В Windows MM будет выводить только страницы, к которым в течение некоторого времени не обращались, также, когда произойдет "Переключение контекста", ваш код перестанет работать.

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

0

Вы можете установить приоритет памяти с помощью SetProcessInformation:

https://msdn.microsoft.com/en-us/library/windows/desktop/hh448389(v=vs.85).aspx

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .