Как влияет изменение приоритета процесса в Windows?
Если вы заходите в диспетчер задач, щелкаете правой кнопкой мыши по процессу и устанавливаете приоритет в режиме реального времени, он часто останавливает сбои программы или ускоряет их запуск.
В контексте программирования, что это делает?
3 ответа
Он вызывает SetPriorityClass ().
Каждый поток имеет базовый уровень приоритета, определяемый значением приоритета потока и классом приоритета его процесса. Система использует базовый уровень приоритета всех исполняемых потоков, чтобы определить, какой поток получает следующий фрагмент процессорного времени. Функция SetThreadPriority позволяет установить базовый уровень приоритета потока относительно класса приоритета его процесса. Для получения дополнительной информации см. Приоритеты планирования.
Он говорит планировщику вдов, чтобы он был более или менее жадным при выделении временных интервалов выполнения вашему процессу. Выполнение в реальном времени никогда не приводит к выполнению (даже драйверам, в соответствии с MSDN), что может привести к задержкам в вашем приложении, если оно ожидает внешних событий, но не имеет собственной производительности (например, Sleep
, SwitchToThread
или же WaitFor[Single|Multiple]Objects
), поэтому следует избегать использования реального времени, если только вы не знаете, что приложение будет обрабатывать его правильно.
Это работает, изменяя вес, данный этому процессу в планировщике задач ОС. Ваш ЦП может выполнять только одну инструкцию за раз (проще говоря, очень просто), и задача ОС состоит в том, чтобы постоянно менять инструкции из каждого запущенного процесса. Повышая или понижая приоритет, вы влияете на то, сколько времени он отводит в ЦП по сравнению с другими приложениями, которые в настоящее время являются многозадачными.