command-line – Изменение приоритета процесса Windows через командную строку – PowerUser

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.

Изображение

command-line - Изменение приоритета процесса Windows через командную строку - PowerUser

Таким образом 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

  1. Данная программа для частного использования распространяется бесплатно, поэтому для начала загрузки нужно лишь перейти по ссылке выше и выбрать Prio — Process Priority Control из списка. Обратите внимание, что на официальном сайте она именуется как «Prio — Process Priority Saver». Не пугайтесь, ведь это одна и та же программа, просто разработчик изменил название на странице, оставив его прежним в установщике.
  2. Скачивание программы Prio - Process Priority Control для изменения приоритета процессов

  3. Дождитесь окончания загрузки и запустите исполняемый файл.
  4. Запуск установщика программы Prio - Process Priority Control для изменения приоритета процессов

  5. Следуйте простой инструкции в инсталляторе, чтобы успешно установить это приложение. После данное окно можно будет закрыть.
  6. Установка программы Prio - Process Priority Control для изменения приоритета процессов

  7. Перейдите в директорию, куда была установлена Prio — Process Priority Control, и запустите ее, щелкнув по соответствующему исполняемому файлу.
  8. Запуск программы Prio - Process Priority Control для изменения приоритета процессов

  9. Никакого уведомления не появится, а также не отобразится графическое меню, поскольку у этого инструмента оно просто отсутствует. Вместо этого в Диспетчер задач будут добавлены новые опции, за выполнение которых и отвечает данное решение. Щелкните правой кнопкой мыши по «Пуск» или по свободному месту на панели задач. В появившемся меню выберите пункт «Диспетчер задач».
  10. Запуск Диспетчера задач в Windows 10 для изменения приоритета процессов

  11. Откроется главное окно оснастки. Здесь переместитесь на вкладку «Подробности».
  12. Переход к подробностям в диспетчере задач для изменения приоритета процессов в Windows 10

  13. Здесь кликните ПКМ по одному из процессов и обратите внимание на три строки — «Приоритет CPU», «Приоритет I/O» и «Сохранить приоритет». Именно они были добавлены рассматриваемой утилитой.
  14. Изменение приоритета процессов через диспетчер задач в Windows 10

Первая опция имеется в Диспетчере задач по умолчанию и позволяет установить распределение нагрузки на CPU, отметив маркером подходящее значение. О «Приоритет I/O» мы уже говорили выше — он отвечает за скорость передачи операций ввода-вывода.

Способ 3: диспетчер задач

Самый простой метод изменения приоритета процесса — воспользоваться Диспетчером задач. Об этом варианте знают многие пользователи, кто хотя бы раз сталкивался с необходимостью выполнения подобного действия. Выше мы рассмотрели установку программы Prio — Process Priority Control, которая добавляет в это меню новые опции, но не все хотят задействовать эту утилиту. Если она не инсталлирована в ОС, параметр в Диспетчере изменяется так:

  1. Откройте необходимое меню любым удобным образом, например, через контекстное меню, щелкнув ПКМ по панели задач.
  2. Запуск Диспетчера задач в Windows 10 для изменения приоритета процессов

  3. В нем переместитесь на вкладку «Подробности».
  4. Переход в раздел подробности диспетчера задач Windows 10 для изменения приоритета процесса

  5. Щелкните по требуемому процессу ПКМ, наведите курсор на «Задать приоритет» и установите оптимальное значение, отметив маркером соответствующий пункт.
  6. Изменение приоритета процесса через стандартное меню Диспетчера задач Windows 10

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

:/>  Спящий режим на Windows 10: как его настроить, включить или отключить

Способ 4: консольная команда start

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

  1. Для этого потребуется запустить командную строку удобным методом от имени администратора, например, отыскав приложение через «Пуск».
  2. Запуск командной строки в Windows 10 для изменения приоритета процесса

  3. В качестве примера возьмем команду start /low vlc. Она запустит плеер с низким приоритетом. Далее мы расскажем обо всех опциях и уточним их значения.
  4. Запуск программы через командную строку для изменения приоритета в Windows 10

  5. Как видно, плеер был успешно запущен, а значит, можно проверить, действительно ли был применен приоритет.
  6. Успешный запуск программы через командную строку с измененным приоритетом в Windows 10

  7. Для этого запустим «Диспетчер задач».
  8. Переход в диспетчер задач для проверки приоритета процесса Windows 10

  9. Просмотрим значение «Приоритет CPU». Видим, что маркером отмечен пункт «Низкий», что является доказательством корректного применения указанного только что параметра.
  10. Проверка приоритета процесса через диспетчер задач в Windows 10

Теперь давайте поговорим обо всех опциях, которые можно выбрать в качестве приоритета распределения CPU:

  • /low — низкий приоритет;
  • /normal — нормальный (устанавливается по умолчанию);
  • /high — высокий;
  • /realtime — в режиме реального времени;
  • /abovenormal — выше среднего;
  • /belownormal — ниже среднего.

В самой команде остается только поменять название приложения на то, которое хотите открыть, чтобы запуск с установленным приоритетом прошел успешно.

Способ 5: изменение конфигурационного файла программы

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

  1. Сначала в директории с ПО отыщите файл формата CFG или INI. Щелкните по нему ПКМ и в контекстном меню выберите «Открыть с помощью».
  2. Выбор конфигурационного файла программы для изменения приоритета процесса в Windows 10

  3. В появившемся окне выберите любой удобный текстовый редактор или стандартный Блокнот.
  4. Запуск конфигурационного файла программы для изменения приоритета процесса в Windows 10

  5. Среди содержимого отыщите строку «Priority». Если она отсутствует, нельзя осуществлять самостоятельное создание. В случае наличия самой строки измените значение на необходимое, где 0 — стандартный приоритет, 4 — скрытый, 6 — ниже нормального, 8 — нормальный, 10 — выше среднего, 13 — высокий и 24 — в режиме реального времени.
  6. Изменение приоритета процесса через конфигурационный файл программы в Windows 10

  7. После внесения изменений не забудьте их сохранить, зажав комбинацию Ctrl S.
  8. Сохранение конфигурационного файла программы после изменения приоритета процесса в Windows 10

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

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