Windows — изменение приоритета процесса windows через командную строку
Из командной строки пакета я бы просто использовал PowerShell. В этом примере запускается calc.exe, находит его процесс и настраивает его класс приоритета на «IDLE», иначе LOW:
start /b /wait powershell.exe -command "calc.exe;$prog = Get-Process -Name calc;$prog.PriorityClass = [System.Diagnostics.ProcessPriorityClass]::IDLE" Укажите одно из следующих значений перечисления: «Normal, Idle, High, RealTime, BelowNormal, AboveNormal”
Вот то же самое от PowerShell с разделенными линиями:
calc.exe
$prog = Get-Process -Name calc
$prog.PriorityClass = [System.Diagnostics.ProcessPriorityClass]::IDLEАвтоматический запуск процесса с определенным (повышенным/пониженным) приоритетом | it блоги – windows, *nix, vmware, hyper-v, netapp, seo, html, видеонаблюдение
Приоритет процесса
Наверняка, практически все знают что такое приоритет процесса, если же нет, постараюсь кратко объяснить.
Это понятие, в определенном смысле, равно как для Windows, так и для Linux, а так же для некоторых других операционных систем.
Сейчас речь пойдет об операционных системах Windows Vista и Windows 7.
Windows Vista и Wnidows 7, впрочем, как и предыдущие версии, системы мультизадачные, т.е. могут выполнять параллельно множество программ, причем, еще и мультипоточные, но это уже отклонение, точнее, ненужное углубление в тему.
Каждая программа, запущенная в Windows, представляет из себя процесс или несколько процессов.
Под каждый процесс, при его запуске, в системе выделяется память, а так же устанавливается приоритет по умолчанию, если только в самой программе нет упоминания о приоритете, с которым необходимо её запускать.
Чем выше приоритет процесса, тем больше ему выделяется процессорного времени, чем ниже приоритет, тем меньше процессу выделяется процессорного времени.
Или если простым языком — чем выше приоритет, тем чаще и больше процессор «уделяет внимание» процессу и его операциям, а чем ниже приоритет, тем меньше «уделяет внимание».
Соответственно это сказывается на скорости выполнение той или иной программы.
Практическая польза от изменения приоритета процесса
В Windows 7 меня изначально удивлял тот факт, что по-сути чисто декоративным процессам, вроде sidebar.exe (гаджеты на рабочий стол) уделяется процессорного времени ровно столько же, как и остальным процессам.
При этом sidebar.exe сам по себе не выполняет каких-то сверх важных и сверх нужных функций. Так зачем же ему уделять столько же процессорного времени, как, например, тяжелому ресурсоёмкому приложению, вроде 3D-игры или 3D-редактора с большой сценой?
Исходя из этого вопроса я и начал, что называется, играть с приоритетами процессов.
Главное что я понял, выше приоритета Normal (Средний) пользовательским программам лучше не подниматься, ибо тогда Windows Vista/7 может начать некорректно распределять процессорное время и некоторые важные системные процессы начнут «подтормаживать».
На самый крайний случай, нужному вам пользовательскому процессу можно выставить приоритет AboveNormal (Выше среднего), но это в очень редких случаях добавляет ощутимую разницу в производительности программе.
Но при этом никто не запрещает снизить приоритет другим, мало или не столь важным процессам, дабы они не отъедали ценное процессорное время, например, у игры.
Часто такие манипуляции действительно позволяют выиграть 5-10FPS.
Автоматический запуск процесса с определенным приоритетом
Недостаток, который известен многим — при изменении приоритета через «Диспетчер задач», он сохраняется лишь до завершения процесса, потом же процесс вновь запускается с приоритетом по-умолчанию. Т.е. ваши настройки приоритетов не запоминаются.
Из-за этого в интернете появилось множество программ, которые запоминают ваш выбор приоритета, а при следующем запуске программы, меняют его за вас автоматически.
Я же изначально не поверил в то, что в Windows нет какого-нибудь инструмента для управления и запоминания приоритета процесса и начал рыть документацию на сайтах Microsoft.
Не буду разводить полемику на тему плохой документированности возможностей Windows, но я оказался прав.
Любому процессу в Windows можно вручную через реестр указать приоритет и еще некоторые свойства, с которыми он будет запускаться.
Путь к разделу реестра:
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Options
Как запустить редактор реестра?
Нажмите сочетание клавиш Win R (быстрый вызов команды «выполнить»), в появившемся окошке, в текстовой строке наберите regedit и нажмите Enter =)
Для того, что бы указать приоритет для процесса, с которым он должен сразу всегда запускаться, вам нужно в указанной выше ветке реестра создать раздел с его именем.
Далее в нем создать еще один раздел, т.е. уже подраздел с названием PerfOptions, а уже в нем создать параметр DWORD (32бита) с названием CpuPriorityClass и задать ему одно из десятичных значений — 1, 3, 5, 6 или 8.
8 — приоритет Normal (средний);
1 — приоритет Idle (низкий);
3 — приоритет High (высокий);
5 — приоритет BelowNormal (ниже среднего);
6 — приоритет AboveNormal (выше среднего);
Разберем на примере sidebar.exe.
В ветке ресстра HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Options я создаю раздел sidebar.exe.
В нем создаю подраздел PerfOptions. И в этом подразделе создаю параметр DWORD (32бита) с названиемCpuPriorityClass c десятичным значением 1.


Таким образом sidebar.exe теперь у меня всегда будет запускаться с низким приоритетом (Idle).
Так же все вышеописанные операции можно делать и через командную строку (cmd).
Я написал небольшой универсальный пакетный файл, который все это делает за пользователя.
Ссылка на пакетный файл:
save_process_priority.cmd
В пакетном файле все пункты расписаны на русском языке. От пользователя потребуется только вводить нужное ему имя процесса и выбирать приоритет.
Для того что бы ваши настройки приоритета вступили в силу, необходимо перезапустить процесс. Либо если вы внесли сразу несколько системных процессов, перезагрузите систему, так будет проще.
Это необходимо потому что данные с реестра считываются только при загрузке и запуске программ, но не при их работе.
В довесок есть еще хорошая статья.
Помогла ли вам эта статья?
ДАНЕТ
Способ 1: process explorer
Для начала затронем тему сторонних приложений. Первое из них называется Process Explorer и распространяется непосредственно самой компанией Microsoft. Это своего рода улучшенная версия стандартного Диспетчера задач, которая позволяет отследить подозрительную активность или настроить каждый процесс. Соответственно, в функциональность этого инструмента входит и изменение приоритета.
Перейти на официальный сайт Process Explorer
Способ 2: prio — process priority control
Следующая сторонняя программа, о которой мы хотим поговорить сегодня, является фоновым решением, расширяющим общую функциональность Диспетчера задач. Суть Prio — Process Priority Control заключается в том, что измененный приоритет одного процесса может быть сохранен, то есть он будет являться таким же даже после перезапуска ПО.
Перейти на официальный сайт Prio — Process Priority Control
- Данная программа для частного использования распространяется бесплатно, поэтому для начала загрузки нужно лишь перейти по ссылке выше и выбрать Prio — Process Priority Control из списка. Обратите внимание, что на официальном сайте она именуется как «Prio — Process Priority Saver». Не пугайтесь, ведь это одна и та же программа, просто разработчик изменил название на странице, оставив его прежним в установщике.
- Дождитесь окончания загрузки и запустите исполняемый файл.
- Следуйте простой инструкции в инсталляторе, чтобы успешно установить это приложение. После данное окно можно будет закрыть.
- Перейдите в директорию, куда была установлена Prio — Process Priority Control, и запустите ее, щелкнув по соответствующему исполняемому файлу.
- Никакого уведомления не появится, а также не отобразится графическое меню, поскольку у этого инструмента оно просто отсутствует. Вместо этого в Диспетчер задач будут добавлены новые опции, за выполнение которых и отвечает данное решение. Щелкните правой кнопкой мыши по «Пуск» или по свободному месту на панели задач. В появившемся меню выберите пункт «Диспетчер задач».
- Откроется главное окно оснастки. Здесь переместитесь на вкладку «Подробности».
- Здесь кликните ПКМ по одному из процессов и обратите внимание на три строки — «Приоритет CPU», «Приоритет I/O» и «Сохранить приоритет». Именно они были добавлены рассматриваемой утилитой.







Первая опция имеется в Диспетчере задач по умолчанию и позволяет установить распределение нагрузки на CPU, отметив маркером подходящее значение. О «Приоритет I/O» мы уже говорили выше — он отвечает за скорость передачи операций ввода-вывода.
Способ 3: диспетчер задач
Самый простой метод изменения приоритета процесса — воспользоваться Диспетчером задач. Об этом варианте знают многие пользователи, кто хотя бы раз сталкивался с необходимостью выполнения подобного действия. Выше мы рассмотрели установку программы Prio — Process Priority Control, которая добавляет в это меню новые опции, но не все хотят задействовать эту утилиту. Если она не инсталлирована в ОС, параметр в Диспетчере изменяется так:
- Откройте необходимое меню любым удобным образом, например, через контекстное меню, щелкнув ПКМ по панели задач.
- В нем переместитесь на вкладку «Подробности».
- Щелкните по требуемому процессу ПКМ, наведите курсор на «Задать приоритет» и установите оптимальное значение, отметив маркером соответствующий пункт.



Уточним, что после перезагрузки приложения оно будет запущено со стандартным приоритетом, поэтому учитывайте это, если хотите на постоянной основе изменять данный параметр.
Способ 4: консольная команда start
Запускать программы в операционной системе Windows можно не только через графический интерфейс, для этого существует и специальная консольная команда под названием Start. Ее преимущество заключается в возможности присвоения дополнительных опций. Сегодня мы не будем разбирать всю функциональность этой утилиты, а только покажем, как самостоятельно установить приоритет для программы во время ее запуска.
- Для этого потребуется запустить командную строку удобным методом от имени администратора, например, отыскав приложение через «Пуск».
- В качестве примера возьмем команду
start /low vlc. Она запустит плеер с низким приоритетом. Далее мы расскажем обо всех опциях и уточним их значения. - Как видно, плеер был успешно запущен, а значит, можно проверить, действительно ли был применен приоритет.
- Для этого запустим «Диспетчер задач».
- Просмотрим значение «Приоритет CPU». Видим, что маркером отмечен пункт «Низкий», что является доказательством корректного применения указанного только что параметра.





Теперь давайте поговорим обо всех опциях, которые можно выбрать в качестве приоритета распределения CPU:
/low— низкий приоритет;/normal— нормальный (устанавливается по умолчанию);/high— высокий;/realtime— в режиме реального времени;/abovenormal— выше среднего;/belownormal— ниже среднего.
В самой команде остается только поменять название приложения на то, которое хотите открыть, чтобы запуск с установленным приоритетом прошел успешно.
Способ 5: изменение конфигурационного файла программы
Последний метод нашей сегодняшней статьи подойдет далеко не всем, поскольку не в каждой программе имеется отдельный конфигурационный файл, позволяющий настроить приоритет. Однако если его изменить, настройка будет автоматически применяться перед каждым запуском.
- Сначала в директории с ПО отыщите файл формата CFG или INI. Щелкните по нему ПКМ и в контекстном меню выберите «Открыть с помощью».
- В появившемся окне выберите любой удобный текстовый редактор или стандартный Блокнот.
- Среди содержимого отыщите строку «Priority». Если она отсутствует, нельзя осуществлять самостоятельное создание. В случае наличия самой строки измените значение на необходимое, где 0 — стандартный приоритет, 4 — скрытый, 6 — ниже нормального, 8 — нормальный, 10 — выше среднего, 13 — высокий и 24 — в режиме реального времени.
- После внесения изменений не забудьте их сохранить, зажав комбинацию Ctrl S.




Если в корне каталога присутствует несколько файлов, соответствующих требуемым форматам, внимательно изучите их содержимое, открыв через текстовый редактор, чтобы понять, где именно находится тот самый параметр, который нужно изменить.
Изменить приоритет процесса в Windows 10 сможет даже неопытный пользователь, следуя довольно простым инструкциям. К тому же ничего не мешает подобрать абсолютно любой из представленных методов и реализовать его.




