Как задать пpиоpитет процесса еще пpи его запyске? Чтоб не лазить постоянно для этого в task manager?
Запуская с помощью консольной команды start можно запускать приложение с нужным приоритетом, указывать время, через которое приложение должно быть закрыто, и некоторые другие параметры. Для более подробной справки почитайте start /? Все эти команды можно прописать в *.bat файле и пользоваться им для запуска приложени. Что бы не писать *.bat файлы для каждой программы отдельно, и не набирать команду целиком, можно сделать файлик high.bat, с таким содержимым
1 2 |
echo off start /high %1 |
и поместить его в директорию SendTo профиля вашего пользователя. Тогда, что бы запустить программу с более высоким приоритетом, достаточно просто переслать её на этот файлик через правую кнопку мыши. Но пересылать надо именно исполняемый файл, а не shortcut к нему. Конечно же, этот файлик можно и переделать и запускать программы с другим приоритетом.
XP может работать в двух режимах. Первый отводит больший приоритет запущенным пользователем приложениям (Optimize Performance for Applications), второй отводит больший приоритет на фоновые приложения и службы (Optimize Performance for Background). Настройку можно посмотреть, если выбрать значок System в Control panel, далее закладку Advanced и кнопку “Performance options”. (В русской версии Панель управления/Система/Дополнительно/Параметры быстродействия).
Первое значение (for Applications) выделяет программам приоритет в зависимости от их уровня приоритета (priority level). Если вы не знакомы с этим понятием, то вкратце поясним: по уровню компьютер решает, какие программы более важны и тратит на них больше процессорного времени. Уровень определяется двумя параметрами: классом приоритета (Priority Class) и приоритетом нити (thread priority). Классы бывают: реального времени (real-time), высокого (high), среднего (normal), близкого к нулю (idle) приоритетов. У нити выделяют следующие приоритеты: критичный ко времени (time critical), высокий (highest), выше среднего (above normal), средний (normal), ниже среднего (below normal), низкий (low) и близкий к нулю (idle).
В приведенной ниже таблице можно посмотреть, как эти два параметра влияют на выполнение задачи.
Priority Class | |||||
Thread Priority | Real-Time | High | Normal | Idle | |
Time Critical | 31 | 15 | 15 | 15 | |
Highest | 26 | 15 | 10 | 6 | |
Above Normal | 25 | 14 | 9 | 5 | |
Normal | 24 | 13 | 8 | 4 | |
Below Normal | 23 | 12 | 7 | 3 | |
Lowest | 22 | 11 | 6 | 2 | |
Idle | 16 | 1 | 1 | 1 |
Значение от 1 до 31 показывает, сколько компьютерного времени выделяется на каждый процесс. Пользователь может изменить класс приоритета программы, причем двумя способами. Первый – через Диспетчер задач (Task Manager). Он подходит, если программа уже запущена. Выбираем закладку “Процессы” (Processes), нажимаем правую клавишу мыши на нужном процессе, выбираем строчку “Приоритет” (Set Priority) и устанавливаем класс приоритета. Второй способ заключается в указании параметра при запуске программы, или создании командного (.CMD) файла в текстовом редакторе. Параметры:
start /<класс приоритета> [<путь>]<имя файла>
Например, start /high c:\windows\notepad.exe
Будьте осторожны в присваивании класса реального времени. Такая программа будет иметь очень высокий приоритет, что может сказаться на замедлении выполнения других программ. Более того, если у вас не SMP система, то охочее до ресурсов приложение может просо ничего не оставить системе, и вы столкнётесь с ситуацией, когда компьютер не будет реагировать на ваши действия, или будет реагировать с большим опозданием. В худшем случае он может просто повиснуть.