...

Как задать приоритет программе в Windows 7

Как запускать программы с разным приоритетом?

Изменить приоритет работы приложений можно следующим способом:

  1. Откройте папку программы, которой хотите изменить приоритет загрузки;
  2. Найдите исполняющий файл, как правило, файл с расширением «.exe»;
  3. Скопируйте его имя, например, paint.exe;
  4. Откройте командную строку комбинацией клавиш «Win + R»;
  5. В командной строке напишите команду «regedit», нажмите «Ввод»;
  6. Откроется редактор реестра, переходим в раздел «HKEY_LOCAL_MACHINE\ SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options»;
  7. Жмем правой кнопкой по разделу «Image File. «, в меню выбираем «Создать», затем «Раздел»;
  8. Задаем имя раздела точно такое, как исполняющий файл программы, например, «paint.exe»;
  9. В новом разделе аналогично создаем еще один раздел под именем «PerfOptions»;
  10. Далее нажимаем правой кнопкой на раздел и выбираем «Создать», далее «Параметр DWORD (32 бита)»;
  11. Далее кликаем правой кнопкой мыши параметр «DWORD (32 бита)», в окне задаем систему счисления десятичную и вводим параметр приоритета цифрами (1 — низкий, 8 — средний, 3 высокий);
  12. Подтверждаем изменения, закрываем реестр и перезагружаем компьютер. Готово!

Управление приоритетами процессов в ОС 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_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options

Как запустить редактор реестра?

Нажмите сочетание клавиш Win+R (быстрый вызов команды «выполнить»), в появившемся окошке, в текстовой строке наберите regedit и нажмите Enter =)

Для того, что бы указать приоритет для процесса, с которым он должен сразу всегда запускаться, вам нужно в указанной выше ветке реестра создать раздел с его именем.
Далее в нем создать еще один раздел, т.е. уже подраздел с названием PerfOptions, а уже в нем создать параметр DWORD (32бита) с названием CpuPriorityClass и задать ему одно из десятичных значений — 1, 2, 3, 5, 6.

1 — приоритет Idle (низкий);
2 — приоритет Normal (средний);
3 — приоритет High (высокий);
5 — приоритет BelowNormal (ниже среднего);
6 — приоритет AboveNormal (выше среднего);

Разберем на примере sidebar.exe.
В ветке ресстра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options я создаю раздел sidebar.exe.
В нем создаю подраздел PerfOptions. И в этом подразделе создаю параметр DWORD (32бита) с названием CpuPriorityClass c десятичным значением 1.

Таким образом sidebar.exe теперь у меня всегда будет запускаться с низким приоритетом (Idle).

Так же все вышеописанные операции можно делать и через командную строку (cmd).
Я написал небольшой универсальный пакетный файл, который все это делает за пользователя.
Ссылка на пакетный файл: save_process_priority.cmd

В пакетном файле все пункты расписаны на русском языке. От пользователя потребуется только вводить нужное ему имя процесса и выбирать приоритет.

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

Вот и все, спасибо за внимание =)
Если заметили ошибку, обязательно сообщите, буду очень благодарен.

Copyright © 2011 Tsiryuta G. N.

При подготовке материала использовались источники:
https://yandex.ru/q/question/kak_zapuskat_prilozheniia_s_raznym_96d45add/
https://stopgame.ru/blogs/topic/21535/upravlenie_prioritetami_processov_v_os_windows_vista_i_windows_7

Оцените статью