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

44557
RomanSt

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

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

29
Существует почти тот же вопрос о переполнении стека: http://stackoverflow.com/questions/301290/how-can-io-priority-of-a-process-be-increased Mehper C. Palavuzlar 14 лет назад 0
@ [Mehper C. Palavuzlar] верно, но это не для программного обеспечения, которое я разрабатываю - я ищу готовый инструмент для этого на стороннем программном обеспечении. RomanSt 13 лет назад 2

4 ответа на вопрос

22
Wye

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

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

Это сработало для меня, спасибо! jftuga 9 лет назад 0
Я только что заметил, что вы не позволяете ему изменить процесс на Высокий приоритет на Server 2012R2. jftuga 9 лет назад 1
15
RomanSt

ProcessHacker - это инструмент с графическим интерфейсом, который может изменять приоритет ввода-вывода произвольного процесса.

Почему это похоже на то, что сделал Руссинович? Daniel Mošmondor 10 лет назад 0
@ DanielMošmondor Может быть, это было вдохновлено ProcExp и его ограничениями? Я лично перешел, потому что ProcExp показал совершенно неправильную загрузку процессора на моем ноутбуке после версии 14. RomanSt 10 лет назад 1
Мало того, ProcExp также смог BSOD мой комп и т. Д. Это бесплатно? Daniel Mošmondor 10 лет назад 1
@ DanielMošmondor Да, более того, он, похоже, делает больше, чем ProcExp во всех отношениях. Немного другой пользовательский интерфейс, но очень способный. RomanSt 10 лет назад 0
10
dyasta

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

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

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

Ответ - простой вызов API для Native API NTSetInformationProcess . Он определен как класс «IoPriority» в DDK 2008 года. В NT6 поддерживаются только два уровня: Очень низкий (фон) и Нормальный . Технически определены 5 уровней: критический, высокий, нормальный, низкий и очень низкий. Критический уровень зарезервирован для пейджинговых операций. Нет данных по остальным.

Тем не менее, правильный способ использования приоритета ввода / вывода состоит в том, чтобы запустить «фоновый режим» только через вызов Windows API SetProcessPriorityClass, предоставляющий PROCESSS_MODE_BACKGROUND_BEGIN. Это заставит его использовать очень низкий (фоновый) приоритет ввода / вывода вместе с классом приоритета CPU IDLE. Когда закончите, вернитесь через PROCESS_MODE_BACKGROUND_END.

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

Я не разбираюсь в программировании Windows и уровне ОС, но я слышал о повышении приоритета потока, вплоть до THREAD_PRIORITY_TIME_CRITICAL, возможно ли это с вашей программой или любой другой программой? или это все еще только IO PRIORITY, который можно регулировать, а не приоритет процессора? Я думаю, что изменение приоритета ввода-вывода не будет иметь большого значения для загрузки процессора, верно? barlop 11 лет назад 0
Да. И то, и другое можно установить и сохранить. Многие другие вещи также могут быть установлены или динамически изменены на основе правил (например, привязка к процессору). Приоритет ввода / вывода отличается от приоритета процессора, верно. dyasta 11 лет назад 0
Это не «готовый инструмент для этого на стороннем программном обеспечении». Cees Timmerman 9 лет назад 0
Извините, я думаю, что вопрос, возможно, был отредактирован, поскольку ясно, что я отвечал с программной стороны (не отредактированный). Process Lasso - это «готовый инструмент для работы со сторонним программным обеспечением». Смотрите https://bitsum.com dyasta 7 лет назад 0
1
Mike Mounier

Я неравнодушен к бесплатному приложению под названием PRIO, которое позволяет сохранять приоритеты процесса (помимо прочего) с очень маленьким (менее 1 МБ) размером. После установки он работает в фоновом режиме до тех пор, пока он вам не понадобится, а его интерфейс встроен непосредственно в диспетчер задач Windows, расширяя его функциональность и делая его так, как будто добавленные функции всегда были частью диспетчера задач. Когда вы щелкаете правой кнопкой мыши по процессу в диспетчере задач с намерением изменить его приоритет, некоторые из дополнительных функций PRIO становятся очевидными, поскольку вы можете изменить не только приоритет ЦП процесса, но и его приоритет ввода / вывода (поэтому ваш вопрос), и вы можете сохранить новые настройки, если хотите. Последнее позволяет сделать так, что каждый раз, когда этот процесс (то есть эта программа) запускается, устанавливаются и сохраняются приоритеты процесса и процессора ввода-вывода, установленные и сохраненные вами.

Приложение имеет другие функции, которые также расширяют функциональность различных вкладок в диспетчере задач Windows. Существуют версии как для 32-, так и для 64-битных систем, и приложение бесплатно для личного использования.

Похоже, отличное приложение. Есть ссылка? Stijn de Witt 6 лет назад 0
Если вы имеете в виду PRIO, он доступен из нескольких различных агрегаторов контента (например, cnet), но непосредственно с веб-сайта разработчика будет https://www.prnwatch.com/prio/ Mike Mounier 6 лет назад 1

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