Как изменить приоритет ввода-вывода процесса или потока в Win7?

Проводник процесса может показать эффективный приоритет IO данного потока, но не изменить его. При наблюдении, поскольку приоритетная поддержка IO является сравнительно новой возможностью, большинство программ не устанавливает свои собственные приоритеты IO. Кажется, что по умолчанию приоритет IO получен из приоритета потока (а не приоритет процесса), который Проводник Процесса не может изменить также.

Есть ли какие-либо другие инструменты там, которые могут помочь мне изменить приоритет IO данного потока / все потоки данного процесса?

32
задан 29.04.2010, 21:29

3 ответа

Готовый инструмент

Сторонняя программа для установки обрабатывает приоритеты ввода-вывода, или ручным пользовательским действием или автоматизацией и персистентностью, было бы Лассо Процесса. Это может установить почти любую установку процесса и делать так постоянно, или по правилам (например, когда это происходит, изменение приоритет ввода-вывода этого).

Программный ответ

Ответ является простым вызовом API Встроенного API NT, NTSetInformationProcess. Это определяется как класс 'IoPriority' в DDK 2008. В NT6 только два уровня поддерживали: Очень Низкий (фон) и Нормальный. Существует технически 5 определенных уровней - Очень важны, Высоки, Нормальны, Низко, и Очень Низко. Критический уровень резервируется для операций страничного обмена. Никакие данные по другим.

Однако надлежащий способ использовать приоритет ввода-вывода только для запуска 'фонового режима' через вызов к Windows API SetProcessPriorityClass, предоставляя PROCESSS_MODE_BACKGROUND_BEGIN. Это заставит это использовать очень Низкое (фон) приоритет ввода-вывода, наряду с НЕАКТИВНЫМ классом приоритета ЦП. При выполнении вернитесь через PROCESS_MODE_BACKGROUND_END.

SetThreadPriority API также позволит этот тот же фоновый режим для определенных потоков. Здесь Вы предоставили бы THREAD_MODE_BACKGROUND_BEGIN/END.

11
ответ дан 07.12.2019, 09:10

Я разработал это после наблюдения никого побеспокоенного им: https://sourceforge.net/projects/iopriority/(открытый исходный код)

Эта программа может установить приоритет ввода-вывода процесса, и все потоки затрагиваются им сразу. Довольно легко изменить его для работы с потоками вместо процессов.

23
ответ дан 07.12.2019, 09:10

ProcessHacker является инструментом GUI, который может изменить приоритет IO произвольного процесса.

14
ответ дан 07.12.2019, 09:10

Теги

Похожие вопросы