Приоритет реального времени windows 10 что это

From what I've read in the past, you're encouraged not to change the priority of your Windows applications programmatically, and if you do, you should never change them to 'Realtime'. What does the '

Real-time is the highest priority class available to a process. Therefore, it is different from ‘High’ in that it’s one step greater, and ‘Above Normal’ in that it’s two steps greater.

Similarly, real-time is also a thread priority level.

The process priority class raises or lowers all effective thread priorities in the process and is therefore considered the ‘base priority’.

So, a process has a:

  1. Base process priority class.
  2. Individual thread priorities, offsets of the base priority class.

Since real-time is supposed to be reserved for applications that absolutely must pre-empt other running processes, there is a special security privilege to protect against haphazard use of it. This is defined by the security policy.

In NT6+ (Vista+), use of the Vista Multimedia Class Scheduler is the proper way to achieve real-time operations in what is not a real-time OS. It works, for the most part, though is not perfect since the OS isn’t designed for real-time operations.

Microsoft considers this priority very dangerous, rightly so. No application should use it except in very specialized circumstances, and even then try to limit its use to temporary needs.

Real-time is the highest priority class available to a process. Therefore, it is different from ‘High’ in that it’s one step greater, and ‘Above Normal’ in that it’s two steps greater.

Similarly, real-time is also a thread priority level.

The process priority class raises or lowers all effective thread priorities in the process and is therefore considered the ‘base priority’.

So, a process has a:

  1. Base process priority class.
  2. Individual thread priorities, offsets of the base priority class.

Since real-time is supposed to be reserved for applications that absolutely must pre-empt other running processes, there is a special security privilege to protect against haphazard use of it. This is defined by the security policy.

In NT6+ (Vista+), use of the Vista Multimedia Class Scheduler is the proper way to achieve real-time operations in what is not a real-time OS. It works, for the most part, though is not perfect since the OS isn’t designed for real-time operations.

Microsoft considers this priority very dangerous, rightly so. No application should use it except in very specialized circumstances, and even then try to limit its use to temporary needs.

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

Что именно является приоритетом процесса? Стоит ли вносить в него изменения? И как на самом деле установить приоритет процесса в Windows 10? Это руководство ответит на все эти вопросы.

Что такое приоритет процесса и почему он важен?

Компьютеры не могут выполнять несколько задач одновременно. Не совсем. Когда ваша операционная система запускает несколько программ (или просто фоновых служб) одновременно, она фактически жонглирует между ними.

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

Приоритет процесса — это просто «важность» каждого процесса. Задачи, которые необходимы для бесперебойной работы вашего компьютера (в основном системные процессы), получают более высокий приоритет, чем приложение, работающее поверх него. Это гарантирует, что даже при максимальной нагрузке основные возможности вашего ПК не будут затронуты.

Каковы уровни приоритета процесса?

Приоритет процесса определяется на нескольких дискретных уровнях. Как и в системе ранжирования, здесь процессы упорядочиваются сверху вниз в порядке их важности.

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

  • Нормальный — это, в общем, «нормальный» уровень приоритета. Большинство приложений работают на этом уровне.
  • Уровень приоритета ниже нормального — чуть ниже обычного. Процессам на этом уровне выделяется меньше ресурсов, чем обычным приложениям. Лучше всего подходит для неважных задач без ограничений по времени.
  • Низкий — это самый низкий уровень приоритета в Windows. Задачи, работающие на этом уровне, получают ресурсы только после того, как все другие процессы завершили свои текущие задачи.
  • Уровень приоритета выше обычного — это следующий более высокий уровень приоритета после обычного. Используйте это для процессов, которые нуждаются в небольшом ускорении, но которым не нужно отодвигать системные процессы на задний план.
  • Высокий — это уровень приоритета, используемый важными системными процессами, необходимыми для бесперебойной работы компьютера. Не рекомендуется для пользовательских приложений.
  • Реальное время — это наивысший возможный уровень приоритета в Windows. По сути, задачи на этом уровне выполняются в режиме реального времени за счет любого другого процесса. По этой причине этот уровень зарезервирован только для процессов взаимодействия с оборудованием. Запуск приложений с этим уровнем приоритета может легко привести к сбою вашего компьютера.

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

Каков эффект от установки приоритета задачи?

Установка нового приоритета процесса изменяет его место в очереди обработки. Задачи с более высоким приоритетом получают предпочтение при распределении системных ресурсов, таких как время процессора и память, что позволяет им работать быстрее.

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

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

Хотя есть несколько способов установить приоритет процесса в Windows, самый простой способ — использовать Диспетчер задач.

  1. Откройте диспетчер задач, используя сочетание клавиш Ctrl + Alt + Del или щелкнув правой кнопкой мыши на панели задач и выбрав Диспетчер задач в появившемся меню.

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

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

  1. Выберите процесс, приоритет которого вы хотите изменить, и перейдите на вкладку «Подробности».

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

  1. Щелкните правой кнопкой мыши выбранный процесс и перейдите к Установить приоритет. Это выпадает в подменю, в котором перечислены все уровни приоритета. Выберите желаемый уровень (в нашем примере ниже нормального).

  1. Появится запрос, подтверждающий, хотите ли вы изменить приоритет выбранного процесса. Выберите Изменить приоритет, чтобы применить изменение.

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

Стоит ли менять приоритет процесса?

Мы видели, как легко изменить уровень приоритета процесса из диспетчера задач в Windows 10. Это может заставить вас задуматься — почему бы не обновить приоритет каждого запущенного приложения? Конечно, повышение производительности — это всегда хорошо?

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

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

prioritet-protsessa-v-windowsДоброго времени!

Первый и самый главный вопрос, с которого следовало бы начать данную статью: зачем вообще менять приоритет и стоит ли это делать?..👀

Представьте, вот вы запускаете тяжелую игру (или редактор видео, или еще что-то…) далеко на не самом мощном компьютере. Причем, помимо вашей игры в Windows (обычно) запущено достаточно большое количество процессов, приложений. И в определенное время они могут «забирать» часть ресурсов себе — в результате игра время от времени притормаживает… 😥

Смена приоритета процесса же позволяет указать Windows, что запущенная игра — это первоочередная задача, которой нужно выделить все основные ресурсы (а все остальное может подождать…). Благодаря заданию приоритетов для самых «главных» для вас программ — можно снизить количество притормаживаний и лагов, ускорить их работу. 👌

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

Теперь ближе к сути…

*

Содержание статьи

    ускорение ПК

  • 1 Работа с приоритетами
    • 1.1 Какие они бывают (основы)
    • 1.2 Изменение приоритета
    • 1.3 Сохранение приоритета с помощью настроек реестра
    • 1.4 Запуск приложения с нужным приоритетом (через командную строку)
  •  → Задать вопрос | дополнить 

Работа с приоритетами

Какие они бывают (основы)

У каждой запускаемой программы или процесса в Windows есть приоритет. Обычно, ОС Windows «сама знает» кому и что выделять, и делает это автоматически (без участия пользователя). Вообще разнообразие приоритетов не такое уж и большое:

  1. Idle (низкий) — программы, выполнение которых может и подождать (при выставлении данного приоритета некоторый софт может тормозить);
  2. Below Normal (ниже среднего);
  3. Normal (средний) — большинство программ запускаются со средним приоритетом;
  4. Above Normal (выше среднего);
  5. High (высокий);
  6. Real Time (реального времени) — самый высокий приоритет. При его выставлении — в первую очередь будет выполняться именно эта программа.

*

📌 Отмечу, что с приоритетом Real Time нужно быть крайне осторожным: в некоторых случаях при его выставлении — компьютер может зависнуть или Windows завершит работу с ошибкой. Поэтому, предпочтение стоит отдать варианту High!

📌 Еще один совет: нет необходимости выставлять приоритет каждой запускаемой программе (с этим Windows хорошо справляется в авто-режиме). Как правило, есть смысл указать приоритет для 2÷5 часто-используемых приложений, которые для вас наиболее важны (например, для любимой игры 😉).

*

Изменение приоритета

Итак, чтобы поменять приоритет работающей программы (процесса) в Windows — необходимо воспользоваться диспетчером задач. Для того, чтобы его вызвать — нажмите сочетание кнопок Ctrl+Shift+Esc (либо Ctrl+Alt+Del).

Для вызова диспетчера задач — нажмите Ctrl+Shift+Esc

Для вызова диспетчера задач — нажмите Ctrl+Shift+Esc

Далее откройте вкладку «Подробности» (это для Windows 11/10, для Windows 7 — «Процессы») и найдите в списке нужный процесс (прим.: название программы совпадает с названием процесса).

После, на нужном процессе кликните правой кнопкой мышки: в появившемся меню перейдите во вкладку «Задать приоритет» и укажите нужный вам. 👇

Задание приоритета для запущенного процесса

Задание приоритета для запущенного процесса

Собственно, на этом всё! Теперь запущенная программа будет работать с новым приоритетом. 📌 При выставлении приоритета реального времени — возможно, компьютер начнет тормозить и зависать!

*

Сохранение приоритета с помощью настроек реестра

После перезагрузки компьютера (или при перезапуске программы) — установленный вами приоритет сбрасывается (т.е. Windows снова задает его автоматически). И это не очень удобно…

Но с помощью настроек реестра можно «сохранить» указанный вами приоритет (т.е. Windows будет «знать», что эту программу нужно запустить с таким-то приоритетом).

Как это сделать:

  1. сначала необходимо открыть 👉 редактор реестра (нажмите Win+R, и введите команду regedit, нажмите OK);

    regedit — открыть редактор реестра

    regedit — открыть редактор реестра

  2. далее необходимо открыть следующую ветку реестра (можно просто ее скопировать и вставить в редактор): HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Options

    Какую ветку в реестре нужно открыть

    Какую ветку в реестре нужно открыть

  3. затем нужно узнать точное название исполняемого файла программы (игры). Для этого просто щелкните правой кнопкой мышки по ее ярлыку и перейдите в свойства. После, в разделе «Ярлык» — в строке «Объект» скопируйте название исполняемого файла;

    Узнаем название исполняемого файла игры

    Узнаем название исполняемого файла игры / Кликабельно

  4. теперь в открытой ветке реестра создайте раздел (папку) с именем исполняемого файла программы (которое мы узнали в предыдущем шаге). В моем случае — это «civilization4.exe« (без кавычек и с маленькими буквами!);

    Создание раздела / Реестр

    Создание раздела / Реестр

  5. далее в ветке с названием игры (программы) создайте еще один раздел (папку) и назовите ее «PerfOptions», см. пример ниже; 👇

    Разделы

    Разделы

  6. последний штрих: в разделе «PerfOptions» создайте параметр DWORD (32), присвойте ему имя «CpuPriorityClass» и задайте значение исходя из требований, в моем случае это «3» (прим.: 1 — низкий приоритет; 5 — ниже среднего; 8 — средний; 6 — выше среднего; 3 — высокий).

    Создать параметр DWORD32

    Создать параметр DWORD32

  7. в конечном итоге получится так, как показано на скрине ниже. 👇

    Что получилось в итоге!

    Что получилось в итоге!

  8. теперь при запуске игры Civilization — Windows будет автоматически выставлять ей высокий приоритет.

*

📌 Кстати!

Для Windows 7 есть спец. программа Prio, позволяющая задавать (и сохранять) приоритеты для практически любых программ и процессов. Правда, в Windows 10/11 она не работает (поэтому выше я и привел универсальный рабочий способ для всех современных ОС Windows).

*

Запуск приложения с нужным приоритетом (через командную строку)

Есть еще один вариант задания приоритета приложению — речь идет о командной строке (разумеется, если создать «BAT» файл — то запуская его, можно всегда иметь программу с нужным приоритетом).

*

Как это сделать:

  1. создать на рабочем столе (например) обычный текстовый файл;

    Создать текстовый документ

    Создать текстовый документ

  2. далее добавить в него «определенную строку»: cmd.exe /c start /high /D «C:gamesSid Meier’s Civilization 4 CompleteBeyond the Sword» Civ4BeyondSword.exe (вместо «/high» можно использовать др. приоритеты, см. начало статьи);
  3. обратите внимание, в этой строке вам нужно изменить путь до установленной игры (программы) на диске («C:gamesSid Meier’s Civilization 4 CompleteBeyond the Sword») и название ее исполняемого файла (Civ4BeyondSword.exe) на свои данные;

     Вставка строки в блокнот и сохранение

    Вставка строки в блокнот и сохранение

  4. после чего сохраните текстовый файл, закройте его и переименуйте расширение: с «TXT» на «BAT» (или «CMD»). Если у вас не отображается расширение файла, ознакомьтесь вот с этой заметкой;

    Изменяем расширение блокнота с TXT на CMD

    Изменяем расширение блокнота с TXT на CMD

  5. теперь можно кликать на получившийся файл и игра будет запускаться с нужным вам приоритетом. Удобно?! 😉

*

Дополнения по теме будут весьма кстати…

Удачи!

Первая публикация: 22.03.2019 

Корректировка: 13.09.2021 

donate

dzen-ya

Полезный софт:

  • видеомонтаж
  • Видео-Монтаж
  • Отличное ПО для создания своих первых видеороликов (все действия идут по шагам!).
    Видео сделает даже новичок!

  • утилита для оптимизации
  • Ускоритель компьютера
  • Программа для очистки Windows от «мусора» (удаляет временные файлы, ускоряет систему, оптимизирует реестр).

В Windows 10 все процессы изначально получают статус приоритета «Обычный», и за это отвечает функция под названием «Приоритет процессов для активных приложений и программ». По сути, эта функция распределяет нагрузку на ПК-процессор для всех активных программ и утилит, работающих в фоновом режиме. К слову, в зависимости от установленного в систему приложения, в иных случаях в приоритете может быть изначально установлено другое значение.

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

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

Для начала взглянем на каждый из основных режимов CPU-приоритезации более подробно.

  • Приоритет реального времени. В этом случае все системные ресурсы прежде всего сосредоточены на активном текущем процессе. Приложения с таким уровнем приоритезации работают более производительно, получая требуемые для работы мощности в реальном времени. Иной раз система жертвует ресурсами даже для ключевых системных процессов. Эту опцию чаще всего рекомендуют заменять на высокий приоритет, поскольку при её использовании возможно заметное снижение производительности самой системы
  • Высокий. В этом случае также используются максимально доступные мощности процессора для конкретного приложения. Однако всё это без ограничения ресурсов для других приложений. В сравнении с более низким классом приоретизации все приложения, работающие в режиме высокого приоритета, как правило, более «шустрые». В этом режиме возможно использование части ресурсов с более низким приоритетом.
  • Средний (обыкновенный). Для большинства приложений при выполнении рядовых задач этого приоритетного уровня, как правило, достаточно. Это значение изначально устанавливается системой для всех установленных приложений. Если нужно откатить внесённые изменения по приоритезации, достаточно присвоить всем приложениям стандартный уровень приоритета.
  • Низкий. Низкоприоритетные процессы использую системные ресурсы только тогда, когда они свободны. Этот режим работы едва ли можно считать пригодным для активной работы с текущим активным приложением. Чаще всего его устанавливают на фоновые процессы, которые не отражаются существенным образом на работоспособность системы в целом. Так, например, нередко его выставляют для служб обновления ПО для продуктов Adobe, запущенных фоном и отслеживающих доступные обновления.

На более ранних версиях Windows, предшествующих текущей версии десятки, можно было задавать приоритет программам на вкладке процессов в системном диспетчере задач. Теперь же всё обстоит немного по-другому. Однако приоритеты по-прежнему можно устанавливать и в диспетчере задач.

Загрузка ... Загрузка …

Установка приоритетов приложений стандартным способом, через диспетчер задач

  • Для начала запускаем диспетчер задач комбинацией клавиш Ctrl+Shift+Esc.
  • Находясь в окне диспетчера, переходим к разделу «Подробности», выбираем нужный процесс, жмём по нему ПКМ и в контекстном меню выбираем пункт «Задать приоритет».

    Диспетчер задач - Подробности - Процесс - ЗАдать приоритет

    Переходим к Диспетчеру задач — Раздел «Подробности», ПКМ по нужному процессу и далее задаём приоритет

При этом не потребуется перезагружать систему – все изменения применяются в реальном времени.

Команда Start в консоли командной строки

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

  • Для начала запускаем командную строку от имени администратора. ПКМ по кнопке «Пуск» и в контекстном меню выбираем «Командная строка (администратор)».

    Пуск - Командная строка (администратор)

    ПКМ по кнопке Пуск и в контекстном меню выбираем «Командная строка (администратор)»

  • Рассмотрим такой пример команды – start /low vlc. С её помощью можно запустить медиаплеер VLC с низким приоритетом. Описанным способом можно задавать приоритет для любой программы при её запуске через командную строку.

Командная строка - start /low vlc

В командной строке прописываем start /low vlc, чтобы запустить программу с заданным (в данном случае низким) приоритетом

Загрузка ... Загрузка …

Вносим изменения в конфигурационный файл программы

Этот способ подойдёт только для тех приложений или игр, для которых имеется собственных файл конфигурации. Но если применить нужные изменения в таком файле, управляемая им программа будет получать заданный в нём CPU-приоритет при каждом старте.

  • Для начала перейдём в папку с приложением/exe-шником игры и найдем файл в формате .ini либо .cfg. Кликаем по нему ПКМ и в контекстном меню выбираем «Открыть с помощью». Для простоты примера выберем стандартный блокнот. Нажимаем F для вызова строки поиска и в ней прописываем «Priority».
  • Файл автоматически подсветит искомое слово. Здесь можно задать приоритет, прописав цифровое значение для этого параметра вручную. Так 0 – стандартный приоритет, 6 – ниже среднего, 4 – скрытый, 8 – стандартный, 10 – выше среднего, 13 – высокий и 24 – в реальном времени. Сохраняем файл, закрываем его и запускаем приложение.

Файл .ini/.cfg - Открыть с помощью - Блокнот

Открываем конфигурационный файл программы при помощи блокнота и вносим в нём соответствующие изменения

Загрузка ... Загрузка …

Используем стороннее ПО

Напоследок рассмотрим вариант смены приоритета при помощи стороннего ПО. Существует множество похожих между собой программ, таких как Process Explorer, Prio и Process Lasso. Для примера возьмём последний вариант.

Интерфейс приложения предельно прост. После запуска видим окно со списком всех активных процессов. Ищем колонку «Класс приоритета» напротив нужного процесса. Здесь можно посмотреть текущий программный приоритет. ПКМ по приоритету или самому процессу, в контекстном меню выбираем «Класс приоритета». Выбираем нужное значение.

Интерфейс программы Process Lasso

Process Lasso основное окно. Ищем нужный процесс — ПКМ по нему, в контексте меню выбираем Класс приоитета и задаём соответствующее значение

Загрузка ... Загрузка …

Хочу заметить, что в случае с программами, использующими древо процессов (например, браузер Firefox, использующий несколько процессов для отдельных окон, вкладок и аддонов) стоит выбрать любой процесс из списка и задать приоритет только для него. Изменения автоматически применятся и для других процессов в дереве процессов этого приложения.

Post Views: 14 496

Ниже представлена не простая расшифровка доклада с семинара CLRium, а переработанная версия для книги .NET Platform Architecture. Той её части, что относится к потокам.

Потоки и планирование потоков

Что такое поток? Давайте дадим краткое определение. По своей сути поток это:

  • Средство параллельного относительно других потоков исполнения кода;
  • Имеющего общий доступ ко всем ресурсам процесса.

Очень часто часто слышишь такое мнение, что потоки в .NET — они какие-то абсолютно свои. И наши .NET потоки являются чем-то более облегчённым чем есть в Windows. Но на самом деле потоки в .NET являются самыми обычными потоками Windows (хоть Windows thread id и скрыто так, что сложно достать). И если Вас удивляет, почему я буду рассказывать не-.NET вещи в хабе .NET, скажу вам так: если нет понимания этого уровня, можно забыть о хорошем понимании того, как и почему именно так работает код. Почему мы должны ставить volatile, использовать Interlocked и SpinWait. Дальше обычного lock дело не уйдёт. И очень даже зря.

Давайте посмотрим из чего они состоят и как они рождаются. По сути поток — это средство эмуляции параллельного исполнения относительно других потоков. Почему эмуляция? Потому, что поток как бы странно и смело это ни звучало — это чисто программная вещь, которая идёт из операционной системы. А операционная система создаёт этот слой эмуляции для нас. Процессор при этом о потоках ничего не знает вообще.

Задача процессора — просто исполнять код. Поэтому с точки зрения процессора есть только один поток: последовательное исполнение команд. А задача операционной системы каким-либо образом менять поток т.о. чтобы эмулировать несколько потоков.

Поток в физическом понимании

«Но как же так?», — скажите вы, — «во многих магазинах и на различных сайтах я вижу запись «Intel Xeon 8 ядер 16 потоков». Говоря по-правде это — либо скудность в терминологии либо — чисто маркетинговый ход. На самом деле внутри одного большого процессора есть в данном случае 8 ядер и каждое ядро состоит из двух логических процессоров. Такое доступно при наличии в процессоре технологии Hyper-Threading, когда каждое ядро эмулирует поведение двух процессоров (но не потоков). Делается это для повышения производительности, да. Но по большому счёту если нет понимания, на каких потоках идут расчёты, можно получить очень не приятный сценарий, когда код выполняется со скоростью, ниже чем если бы расчёты шли на одном ядре. Именно поэтому раздача ядер идёт +=2 в случае Hyper-Threading. Т.е. пропуская парные ядра.

Технология эта — достаточно спорная: если вы работаете на двух таких псевдо-ядрах (логических процессорах, которые эмулируются технологией Hyper-Threading), которые при этом находятся на одном физическом ядре и работают с одной и той-же памятью, то вы будете постоянно попадать в ситуацию, когда второй логический процессор так же пытается обратиться к данной памяти, создавая блокировку либо попадая в блокировку, т.к. поток, находящийся на первом ядре работает с той же памятью.

Возникает блокировка совместного доступа: хоть и идёт эмуляция двух ядер, на самом-то деле оно одно. Поэтому в наихудшем сценарии эти потоки исполняются по очереди, а не параллельно.

Так если процессор ничего не знает о потоках, как же достигается параллельное исполнение потоков на каждом из его ядер? Как было сказано, поток — средство операционной системы выполнять на одном процессоре несколько задач одновременно. Достигается параллелизм очень быстрым переключением между потоками в течение очень короткого промежутка времени. Последовательно запуская на выполнение код каждого из потоков и делая это достаточно часто, операционная система достигает цели: делает их исполнение псевдопараллельным, но параллельным с точки зрения восприятия человека. Второе обоснование существования потоков — это утверждение, что программа не так часто срывается в математические расчёты. Чаще всего она взаимодействует с окружающим её миром: различным оборудованием. Это и работа с жёстким диском и вывод на экран и работа с клавиатурой и мышью. Поэтому чтобы процессор не простаивал, пока оборудование сделает то, чего хочет от него программа, поток можно на это время установить в состояние блокировки: ожидания сигнала от операционной системы, что оборудование сделало то, что от него просили. Простейший пример этого — вызов метода Console.ReadKey().

Если заглянуть в диспетчер задач Windows 10, то можно заметить, что в данный момент в вашей системе существует около 1,5 тысячи потоков. И если учесть, что квант на десктопе равен 20 мс, а ядер, например, 4, то можно сделать вывод, что каждый поток получает 20 мс работы 1 раз в 7,5 сек… Ну конечно же, нет. Просто почти все потоки чего-то ждут. То ввода пользователя, то изменения ключей реестра… В операционной системе существует очень много причин, чтобы что-либо ждать.

Так что пока одни потоки в блокировке, другие — что-то делают.

Создание потоков

Простейшая функция создания потоков в пользовательском режиме операционной системы — CreateThread. Эта функция создаёт поток в текущем процессе. Вариантов параметризации CreateThread очень много и когда мы вызываем new Thread(), то из нашего .NET кода вызывается данная функция операционной системы.

В эту функцию передаются следующие атрибуты:

1) Необязательная структура с атрибутами безопасности:

  • Дескриптор безопасности (SECURITY_ATTRIBUTES) + признак наследуемости дескриптора.

    В .NET его нет, но можно создать поток через вызов функции операционной системы;

2) Необязательный размер стека:

  • Начальный размер стека, в байтах (система округляет это значение до размера страницы памяти)

    Т.к. за нас размер стека передаёт .NET, нам это делать не нужно. Это необходимо для вызовов методов и поддержки памяти.

3) Указатель на функцию — точка входа нового потоками
4) Необязательный аргумент для передачи данных функции потока.

Из того, что мы не имеем в .NET явно — это структура безопасности с атрибутами безопасности и размер стэка. Размер стэка нас мало интересует, но атрибуты безопасности нас могут заинтересовать, т.к. сталкиваемся мы с ними впервые. Сейчас мы рассмотривать их не будем. Скажу только, что они влияют на возможность изменения информации о потоке средствами операционной системы.

Если мы создаём любым способом: из .NET или же вручную, средствами ОС, мы как итог имеем и ManageThreadId и экземпляр класса Thread.

Также у этой функции есть необязательный флаг: CREATE_SUSPENDED — поток после создания не стартует. Для .NET это поведение по умолчанию.

Помимо всего прочего существует дополнительный метод CreateRemoteThread, который создаёт поток в чужом процессе. Он часто используется для мониторинга состояния чужого процесса (например программа Snoop). Этот метод создаёт в другом процессе поток и там наш поток начинает исполнение. Приложения .NET так же могут заливать свои потоки в чужие процессы, однако тут могут возникнуть проблемы. Первая и самая главная — это отсутствие в целевом потоке .NET runtime. Это значит, что ни одного метод фреймворка там не будет: только WinAPI и то, что вы написали сами. Однако, если там .NET есть, то возникает вторая проблема (которой не было раньше). Это — версия runtime. Необходимо: понять, что там запущено (для этого необходимо импортировать не-.NET методы runtime, которые написаны на C/C++ и разобраться, с чем мы имеем дело). На основании полученной информации подгрузить необходимые версии наших .NET библиотек и каким-то образом передать им управление.

Я бы рекомендовал вам поиграться с задачкой такого рода: вжиться в код любого .NET процесса и вывести куда-либо сообщение об удаче внедрения (например, в файл лога)

Планирование потоков

Для того чтобы понимать, в каком порядке исполнять код различных потоков, необходима организация планирования тих потоков. Ведь система может иметь как одно ядро, так и несколько. Как иметь эмуляцию двух ядер на одном так и не иметь такой эмуляции. На каждом из ядер: железных или же эмулированных необходимо исполнять как один поток, так и несколько. В конце концов система может работать в режиме виртуализации: в облаке, в виртуальной машине, песочнице в рамках другой операционной системы. Поэтому мы в обязательном порядке рассмотрим планирование потоков Windows. Это — настолько важная часть материала по многопоточке, что без его понимания многопоточка не встанет на своё место в нашей голове никоим образом.

Итак, начнём. Организация планирования в операционной системе Windows является: гибридной. С одной стороны моделируются условия вытесняющей многозадачности, когда операционная система сама решает, когда и на основе каких условия вытеснить потоки. С другой стороны — кооперативной многозадачности, когда потоки сами решают, когда они всё сделали и можно переключаться на следующий (UMS планировщик). Режим вытесняющей многозадачности является приоритетным, т.к. решает, что будет исполняться на основе приоритетов. Почему так? Потому что у каждого потока есть свой приоритет и операционная система планирует к исполнению более приоритетные потоки. А вытесняющей потому, что если возникает более приоритетный поток, он вытесняет тот, который сейчас исполнялся. Однако во многих случаях это бы означало, что часть потоков никогда не доберется до исполнения. Поэтому в операционной системе есть много механик, позволяющих потокам, которым необходимо время на исполнение его получить несмотря на свой более низкий по сравнению с остальными, приоритет.

Уровни приоритета

Windows имеет 32 уровня приоритета (0-31)

  • 1 уровень (00 — 00) — это Zero Page Thread;
  • 15 уровней (01 — 15) — обычные динамические приоритеты;
  • 16 уровней (16 — 31) — реального времени.

Самый низкий приоритет имеет Zero Page Thread. Это — специальный поток операционной системы, который обнуляет страницы оперативной памяти, вычищая тем самым данные, которые там находились, но более не нужны, т.к. страница была освобождена. Необходимо это по одной простой причине: когда приложение освобождает память, оно может ненароком отдать кому-то чувствительные данные. Личные данные, пароли, что-то ещё. Поэтому как операционная система так и runtime языков программирования (а у нас — .NET CLR) обнуляют получаемые участки памяти. Если операционная система понимает, что заняться особо нечем: потоки либо стоят в блокировке в ожидании чего-либо либо нет потоков, которые исполняются, то она запускает самый низко приоритетный поток: поток обнуления памяти. Если она не доберется этим потоком до каких-либо участков, не страшно: их обнулят по требованию. Когда их запросят. Но если есть время, почему бы это не сделать заранее?

Продолжая говорить о том, что к нам не относится, стоит отметить приоритеты реального времени, которые когда-то давным-давно таковыми являлись, но быстро потеряли свой статус приоритетов реального времени и от этого статуса осталось лишь название. Другими словами, Real Time приоритеты на самом деле не являются таковыми. Они являются приоритетами с исключительно высоким значением приоритета. Т.е. если операционная система будет по какой-то причине повышать приоритет потока с приоритетом из динамической группы (об этом — позже, но, например, потому, что потоку освободили блокировку) и при этом значение до повышения было равно 15, то повысить приоритет операционная система не сможет: следующее значение равно 16, а оно — из диапазона реального времени. Туда повышать такими вот «твиками» нельзя.

Уровень приоритетов процессов с позиции Windows API.

Приоритеты — штука относительная. И чтобы нам всем было проще в них ориентироваться, были введены некие правила относительности расчетов: во-первых все потоки вообще (от всех приложений) равны для планировщика: планировщик не различает потоки это различных приложений или же одного и того же приложения. Далее, когда программист пишет свою программу, он задаёт приоритет для различных потоков, создавая тем самым модель многопоточности внутри своего приложения. Он прекрасно знает, почему там был выбран пониженный приоритет, а тут — обычный. Внутри приложения всё настроено. Далее, поскольку есть пользователь системы, он также может выстраивать приоритеты для приложений, которые запускаются на этой системе. Например, он может выбрать повышенный приоритет для какого-то расчетного сервиса, отдавая ему тем самым максимум ресурсов. Т.е. уровень приоритета можно задать и у процесса.

Однако, изменение уровня приоритета процесса не меняет относительных приоритетов внутри приложения: их значения сдвигаются, но не меняется внутренняя модель приоритетов: внутри по-прежнему будет поток с пониженным приоритетом и поток — с обычным. Так, как этого хотел разработчик приложения. Как же это работает?

Существует 6 классов приоритетов процессов. Класс приоритетов процессов — это то, относительно чего будут создаваться приоритеты потоков. Все эти классы приоритетов можно увидеть в «Диспетчере задач», при изменении приоритета какого-либо процесса.

Другими словами класс приоритета — это то, относительно чего будут задаваться приоритеты потоков внутри приложения. Чтобы задать точку отсчёта, было введено понятие базового приоритета. Базовый приоритет — это то значение, чем будет являться приоритет потока с типом приоритета Normal:

  • Если процесс создаётся с классом Normal и внутри этого процесса создаётся поток с приоритетом Normal, то его реальный приоритет Normal будет равен 8 (строка №4 в таблице);
  • Если Вы создаёте процесс и у него класс приоритета Above Normal, то базовый приоритет будет равен 10. Это значит, что потоки внутри этого процесса будут создаваться с более повышенным приоритетом: Normal будет равен 10.

Для чего это необходимо? Вы как программисты знаете модель многопоточности, которая у вас присутствует.
Потоков может быть много и вы решаете, что один поток должен быть фоновым, так как он производит вычисления и вам
не столь важно, когда данные станут доступны: важно чтобы поток завершил вычисления (например поток обхода и анализа дерева). Поэтому, вы устанавливаете пониженный приоритет данного потока. Аналогично может сложится ситуация когда необходимо запустить поток с повышенным приоритетом.

Представим, что ваше приложение запускает пользователь и он решает, что ваше приложение потребляет слишком много процессорных ресурсов. Пользователь считает, что ваше приложение не столь важное в системе, как какие-нибудь другие приложения и понижает приоритет вашего приложения до Below Normal. Это означает, что он задаёт базовый приоритет 6 относительно которого будут рассчитываться приоритеты потоков внутри вашего приложения. Но в системе общий приоритет упадёт. Как при этом меняются приоритеты потоков внутри приложения?

Таблица 3

Normal остаётся на уровне +0 относительно уровня базового приоритета процесса. Below normal — это (-1) относительно уровня базового. Т.е. в нашем примере с понижением уровня приоритета процесса до класса Below Normal приоритет потока ‘Below Normal’ пересчитается и будет не 8 - 1 = 7 (каким он был при классе Normal), а 6 - 1 = 5. Lowest (-2) станет равным 4.

Idle и Time Critical — это уровни насыщения (-15 и +15). Почему Normal — это 0 и относительно него всего два шага: -2, -1, +1 и +2? Легко провести параллель с обучением. Мы ходим в школу, получаем оценки наших знаний (5,4,3,2,1) и нам понятно, что это за оценки: 5 — молодец, 4 — хорошо, 3 — вообще не постарался, 2 — это не делал ни чего, а 1 — это то, что можно исправить потом на 4. Но если у нас вводится 10-ти бальная система оценок (или что вообще ужас — 100-бальная), то возникает неясность: что такое 9 баллов или 7? Как понять, что вам поставили 3 или 4?

Тоже самое и с приоритетами. У нас есть Normal. Дальше, относительно Normal у нас есть чуть повыше
Normal (Normal above), чуть пониже Normal (Normal below). Также есть шаг на два вверх
или на два вниз (Higest и Lowest). Нам, поверьте, нет никакой необходимости в более подробной градации. Единственное, очень редко, может раз в жизни, нам понадобится сказать: выше чем любой приоритет в системе. Тогда мы выставляем уровень Time Critical. Либо наоборот: это надо делать, когда во всей системе делать нечего. Тогда мы выставляем уровень Idle. Это значения — так называемые уровни насыщения.

Как рассчитываются уровни приоритета?

У нас бал класс приоритета процесса Normal (Таблица 3) и приоритет потоков Normal — это 8. Если процесс Above Normal то поток Normal получается равен 9. Если же процесс выставлен в Higest, то поток Normal получается равен 10.

Поскольку для планировщика потоков Windows все потоки процессов равнозначны, то:

  • Для процесса класса Normal и потока Above-Normal
  • Для процесса класса Higest и потока Normal
    конечные приоритеты будут одинаковыми и равны 10.

Если мы имеем два процесса: один с приоритетом Normal, а второй — с приоритетом Higest, но при этом
первый имел поток Higest а второй Normal, то система их приоритеты будет рассматривать как одинаковые.

Как уже обсуждалось, группа приоритетов Real-Time на самом деле не является таковой, поскольку настоящий Real-Time — это гарантированная доставка сообщения за определённое время либо обработка его получения. Т.е., другими словами, если на конкретном ядре есть такой поток, других там быть не должно. Однако это ведь не так: система может решить, что низко приоритетный поток давно не работал и дать ему время, отключив real-time. Вернее его назвать классом приоритетов который работает над обычными приоритетами и куда обычные приоритеты не могут уйти, попав под ситуации, когда Windows временно повышает им приоритет.

Но так как поток повышенным приоритетом исполняется только один на группе ядер, то получается,
что если у вас даже Real-Time потоки, не факт, что им будет выделено время.

Если перевести в графический вид, то можно заметить, что классы приоритетов пересекаются. Например, существует пересечение Above-Normal Normal Below-Normal (столбик с квадратиками):

Это значит, что для этих трех классов приоритетов процессов существуют такие приоритеты потоков внутри этих классов, что реальный приоритет будет равен. При этом, когда вы задаёте приоритет процессу вы просто повышаете или понижаете все его внутренние приоритеты потоков на определённое значение (см. Таблица 3).

Поэтому, когда процессу выдаётся более высокий класс приоритета, это повышает приоритет потоков процесса относительно обычных – с классом Normal.

Кстати говоря, мы стартовали продажи на CLRium #7, в котором мы с огромным удовольствием будем говорить про практику работы с многопоточным кодом. Будут и домашние задания и даже возможность работы с личным ментором.

Загляните к нам на сайт: мы сильно постарались, чтобы его было интересно изучить.

Всем привет! Сегодня мы посмотрим, как можно в Windows 10 или Windows 11 задать более высокий приоритет для запущенной игры или программы. Давайте сначала разберемся с приоритетом реального времени – что это за функция и для чего она нужна? Таким образом операционная система будет работать так, чтобы в первую очередь тратить свои ресурсы на выделенное программное обеспечение.

В некоторых случаях с помощью подобного метода можно немного улучшить производительность для программы и тем самым уменьшить некоторые «лаги», которые могут возникать из-за недостаточной производительности процессора и видеокарты. Как только мы это сделаем, не спешите закрывать статью. Дополнительно я дам еще несколько советов по ускорению работы ПК и системы в программах и игрушках.

ПРИМЕЧАНИЕ! Нижеперечисленные инструкции также подходят и для более старых версий Windows (7, 8, 8.1 и XP).

Содержание

  1. Инструкция
  2. Как дополнительно улучшить производительность?
  3. Задать вопрос автору статьи

Инструкция

Как задать приоритет игре в Windows 10 и Windows 11

Итак, как же нам повысить приоритет процесса, программы или игры в Windows 10 и 11. Для того, чтобы выставить это значение, нам нужно открыть «Диспетчер задач». Это можно сделать несколькими способами:

  1. Проще всего запустить системный монитор, нажав правой кнопкой мыши по меню «Пуск».

Приоритет реального времени - что это и для эта функция нужна?

  1. Второй способ – это зажать две клавиши на клавиатуре:

+ R

  1. Вводим команду запроса на открытие системной утилиты:

taskmgr

Приоритет реального времени - что это и для эта функция нужна?

  1. Ну и третий способ – это использовать клавиши:

Ctrl + Alt + Delete

  1. Вы извините, что я подробно описываю несколько вариантов, просто на разных версиях Виндовс некоторые методы могут не работать. Как только вы попадете внутрь, перейдите на вкладку «Подробности», найдите вашу программу или игру в списке, кликните по ней ПКМ и из контекстного меню выбираем команду «Задать приоритет», далее выбираем один из представленных вариантов.

Приоритет реального времени - что это и для эта функция нужна?

  1. Вылезет стандартное окно предупреждения – нужно просто согласиться.

Приоритет реального времени - что это и для эта функция нужна?

А теперь давайте коротко пробежимся по режимам (или приоритетам), которые вы можете выставить:

  • Реального времени – самый высокий уровень, позволяющий выполнять все нужды программы в первую очередь. То есть ресурсы будут тратиться по максимуму. Будьте аккуратны при выставлении данного режима для прожорливой игры. В некоторых моментах это может привести к некоторым тормозам в работе системы из-за того, что в первую очередь будут тратиться ресурсы на игрушку, а все остальные системные функции будут стоять в очереди.
  • Высокий, выше среднего, обычный, ниже среднего и низкий – каждый из этих уровней имеет свою градацию и очередь выполнения. Почему я их объединил? – да потому что они работают все примерно плюс-минус одинаково. Разница лишь в приоритетах. Давайте покажу на примере. Сначала будут выполняться все процессы с «Высоким» уровнем – все, в порядке очереди. Оставшиеся ресурсы будут распределены на программы с уровнями «Выше среднего» и «Обычные». Если ресурсов будет не хватать, то они будут стоять в очереди. Последнее что будет исполняться это «Средние» и «Низкие» уровни.

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

При смене приоритетов на очень высокие уровни есть вероятность поломать эту систему. И как итог, вы можете выставить приоритет для игры или программы, и он будет выше системных процессов, что может привести к некоторым лагам в самой же программе. К чему я это все говорю? – все эти приоритеты нужно тестировать, повышая ТОЛЬКО ОДИН процесс, программу или игру. Не нужно менять процессы в массовом порядке – это может привести к поломке системы.

В общем делаем так – запустили игру или программу, повысили приоритет и далее смотрим на результат. Также дополнительно в обязательно порядке смотрим главу дальше.

Как дополнительно улучшить производительность?

Честно вам скажу, но лично у меня все эти приоритеты работали без каких-либо реальных результатов. Но не скажу, что советы из прошлой главы не помогут вам – все индивидуально и может зависеть от начальной производительности системы. Но я собрал подборку статей, которые реально смогут помочь улучшить работы вашего ПК, как в обычном режиме, так и в играх. Читаем и увеличиваем скорость работы как системы, так и запущенных программ:

  • В новых версиях Windows есть специальный игровой режим (Game Mode) – он позволяет грамотно перевести всю производительность компа для увеличения FPS в игрушках. Читаем – как включить игровой режим.
  • Кто бы что ни говорил, но ребята из Microsoft реально стараются оптимизировать систему. Поэтому у меня есть два основных совета. Первый – использовать официальную сборку. Второй – периодически её обновлять. Обновления помогут исправить некоторые ошибки и баги в системе. Также разработчики могут отключать некоторые ненужные функции, службы и компоненты. Читаем – как обновить систему.
  • Следующее, что мы сделаем – это выполним полную чистку системы от всего лишнего и ненужного.
  • Советую проверить комп антивирусной программой, если вы давно этого не делали.
  • Раз в год обязательно чистим ПК от пыли и меняем термопасту и термопрокладки. Инструкции:
    • Для стационарного компьютера.
    • Для ноутбука.
  • Отличная статья – 15 способов ускорить свой ПК и систему.
  • Наша система работает с железом. А для железа нужны драйвера. Драйвера это программное обеспечение и их нужно регулярно обновлять (ну хотя бы раз в полгода). Обновление исключительно ручное – скачиваем с официального сайта вашего железа. Читаем – как правильно обновлять драйвера.
  • В качестве дополнения – у вас на ПК обязательно должен быть хотя бы один SSD носитель. SSD – это более быстрая версия HDD. На ней должна быть установлена операционная система. Кстати саму игру можно также установить на SSD – в интернете полно слухов, что это реально может увеличить количество кадров в секунду.
  • Посмотрите сколько у вас оперативной памяти. Напомню, что для Windows 10 и 11 для хорошей производительности желательно иметь 16 ГБ ОЗУ.

На этом все, дорогие друзья. Пишите свои советы, дополнения и вопросы в комментариях. Портал WiFiGiD.RU желает вам добра и процветания.

Содержание

  1. Как изменить приоритет процесса и как его сохранить (высокий, низкий)
  2. Работа с приоритетами.
  3. Изменение приоритета процесса в Windows 10
  4. Повышаем приоритет процесса в Windows 10
  5. Способ 1: Process Explorer
  6. Способ 2: Prio — Process Priority Control
  7. Способ 3: Диспетчер задач
  8. Способ 4: Консольная команда Start
  9. Способ 5: Изменение конфигурационного файла программы

Как изменить приоритет процесса и как его сохранить (высокий, низкий)

Доброго времени!

Первый и самый главный вопрос, с которого следовало бы начать данную статью: зачем вообще менять приоритет и стоит ли это делать. 👀

Представьте, вот вы запускаете тяжелую игру (или редактор видео, или еще что-то. ) далеко на не самом мощном компьютере. Причем, помимо вашей игры в Windows (обычно) запущено достаточно большое количество процессов, приложений. И в определенное время они могут «забирать» часть ресурсов себе — в результате игра время от времени притормаживает.

Смена приоритета процесса же позволяет указать Windows, что запущенная игра — это первоочередная задача, которой нужно выделить все основные ресурсы (а все остальное может подождать. ) . Благодаря заданию приоритетов для самых «главных» для вас программ — можно снизить количество притормаживаний и лагов, ускорить их работу.

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

Теперь ближе к сути.

Работа с приоритетами.

У каждой запускаемой программы или процесса в Windows есть приоритет. Обычно, ОС Windows «сама знает» кому и что выделять, и делает это автоматически (без участия пользователя). Вообще разнообразие приоритетов не такое уж и большое:

  1. Idle (низкий) — программы, выполнение которых может и подождать (при выставлении данного приоритета некоторый софт может тормозить) ;
  2. Below Normal (ниже среднего);
  3. Normal (средний) — большинство программ запускаются со средним приоритетом;
  4. Above Normal (выше среднего);
  5. High (высокий);
  6. Real Time (реального времени) — самый высокий приоритет. При его выставлении — в первую очередь будет выполняться именно эта программа.

Отмечу, что с приоритетами High и Real Time нужно быть крайне осторожными: в некоторых случаях при выставлении оных — компьютер может зависнуть или Windows завершит работу с ошибкой.

Еще один совет : нет необходимости выставлять приоритет каждой запускаемой программе (с этим Windows хорошо справляется в авто-режиме). Как правило, есть смысл указать приоритет для 2÷5 часто-используемых приложений, которые для вас наиболее важны.

Изменение приоритета

И так, чтобы поменять приоритет работающей программы (процесса) в Windows — необходимо воспользоваться диспетчером задач . Для того, чтобы его вызвать — нажмите сочетание кнопок Ctrl+Shift+Esc (либо Ctrl+Alt+Del).

Для вызова диспетчера задач — нажмите Ctrl+Shift+Esc

Далее откройте вкладку «Подробности» (это для Windows 10, для Windows 7 — «Процессы») и найдите в списке нужный процесс ( прим. : название программы совпадает с названием процесса) .

После, на нужном процессе кликните правой кнопкой мышки: в появившемся меню перейдите во вкладку «Задать приоритет» и укажите нужный вам.

Задание приоритета для запущенного процесса

Собственно, на этом всё! Теперь запущенная программа будет работать с новым приоритетом. При выставлении приоритета реального времени — возможно, компьютер начнет тормозить.

Сохранение приоритета с помощью настроек реестра

После перезагрузки компьютера (или при перезапуске программы) — установленный вами приоритет сбрасывается (т.е. Windows снова задает его автоматически). И это не очень удобно.

Но с помощью настроек реестра можно «сохранить» указанный вами приоритет (т.е. Windows будет «знать», что эту программу нужно запустить с таким-то приоритетом).

Как это сделать:

    сначала необходимо открыть редактор реестра (нажмите Win+R , и введите команду regedit , нажмите OK). У кого не открылся редактор, привожу в помощь одну свою старую заметку: https://ocomp.info/sposoby-otkryit-redaktor-reestra.html

regedit — открыть редактор реестра

далее необходимо открыть следующую ветку реестра (можно просто ее скопировать и вставить в редактор): HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Options

Какую ветку в реестре нужно открыть

затем нужно узнать точное название исполняемого файла программы (игры). Для этого просто щелкните правой кнопкой мышки по ее ярлыку и перейдите в свойства . После, в разделе «Ярлык» — в строке «Объект» скопируйте название исполняемого файла;

Узнаем название исполняемого файла игры / Кликабельно

теперь в открытой ветке реестра создайте раздел (папку) с именем исполняемого файла программы (которое мы узнали в предыдущем шаге) . В моем случае — это «civilization4.exe» (без кавычек и с маленькими буквами!) ;

Создание раздела / Реестр

далее в ветке с названием игры (программы) создайте еще один раздел (папку) и назовите ее «PerfOptions» , см. пример ниже;

последний штрих: в разделе «PerfOptions» создайте параметр DWORD (32), присвойте ему имя » CpuPriorityClass » и задайте значение исходя из требований, в моем случае это «3» ( прим.: 1 — низкий приоритет; 5 — ниже среднего; 8 — средний; 6 — выше среднего; 3 — высокий) .

Создать параметр DWORD32

в конечном итоге получится так, как показано на скрине ниже.

Что получилось в итоге!

  • теперь при запуске игры Civilization — Windows будет автоматически выставлять ей высокий приоритет.
  • Для Windows 7 есть спец. программа Prio, позволяющая задавать (и сохранять) приоритеты для практически любых программ и процессов. Правда, в Windows 10 она не работает (поэтому выше я и привел универсальный рабочий способ для всех современных ОС Windows).

    Запуск приложения с нужным приоритетом (через командную строку)

    Есть еще один вариант задания приоритета приложению — речь идет о командной строке (разумеется, если создать «BAT» файл — то запуская его, можно всегда иметь программу с нужным приоритетом) .

    Как это сделать:

      создать на рабочем столе (например) обычный текстовый файл;

    Создать текстовый документ

  • далее добавить в него «определенную строку»: cmd.exe /c start /high /D «C:gamesSid Meier’s Civilization 4 CompleteBeyond the Sword» Civ4BeyondSword.exe
  • обратите внимание, в этой строке вам нужно изменить путь до установленной игры (программы) на диске («C:gamesSid Meier’s Civilization 4 CompleteBeyond the Sword») и название ее исполняемого файла (Civ4BeyondSword.exe) на свои данные;

    Вставка строки в блокнот и сохранение

    после чего сохраните текстовый файл, закройте его и переименуйте расширение: с «TXT» на «BAT» (или «CMD»). Если у вас не отображается расширение файла, ознакомьтесь вот с этой заметкой: https://ocomp.info/kak-uvidet-skryityie-faylyi-i-papki.html

    Изменяем расширение блокнота с TXT на CMD

  • теперь можно кликать на получившийся файл и игра будет запускаться с нужным вам приоритетом. Удобно?!
  • Дополнения по теме будут весьма кстати.

    Изменение приоритета процесса в Windows 10

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

    Повышаем приоритет процесса в Windows 10

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

    Способ 1: Process Explorer

    Для начала затронем тему сторонних приложений. Первое из них называется Process Explorer и распространяется непосредственно самой компанией Microsoft. Это своего рода улучшенная версия стандартного Диспетчера задач, которая позволяет отследить подозрительную активность или настроить каждый процесс. Соответственно, в функциональность этого инструмента входит и изменение приоритета.

      Воспользуйтесь указанной выше ссылкой, чтобы перейти на официальный сайт и скачать там приложение Process Explorer.

    По завершении загрузки откройте полученный каталог через любой удобный архиватор.

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

    В появившемся контекстном меню наведите курсор на «Set Priority» и отметьте маркером необходимый пункт. Соответственно, чем выше приоритет, тем больше ресурсов будет направлено на это приложение, игнорируя другие. Если отметить «IDLE», приоритет сменится на скрытый, а значит, выполнение задачи будет приостановлено.

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

    Способ 2: Prio — Process Priority Control

    Следующая сторонняя программа, о которой мы хотим поговорить сегодня, является фоновым решением, расширяющим общую функциональность Диспетчера задач. Суть Prio — Process Priority Control заключается в том, что измененный приоритет одного процесса может быть сохранен, то есть он будет являться таким же даже после перезапуска ПО. Дополнительно появляется возможность задать приоритет I/O, который нужен для минимизации ожидания отклика. Скачивание и установка 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». Если она отсутствует, нельзя осуществлять самостоятельное создание. В случае наличия самой строки измените значение на необходимое, где — стандартный приоритет, 4 — скрытый, 6 — ниже нормального, 8 — нормальный, 10 — выше среднего, 13 — высокий и 24 — в режиме реального времени.

    После внесения изменений не забудьте их сохранить, зажав комбинацию Ctrl + S.

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

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

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

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

    • Изменение приоритета процессов
    • Что происходит и стоит ли задавать приоритет
    • Видео

    Изменение приоритета процессов

    Для того, чтобы задать приоритет определенного процесса в Windows 11 или Windows 10, достаточно выполнить следующие шаги:

    1. Откройте диспетчер задач. Это можно сделать из контекстного меню по правому клику на кнопке «Пуск». Также можно нажать клавиши Ctrl+Shift+Esc или нажать клавиши Win+R на клавиатуре, ввести taskmgr и нажать Enter. Запуск диспетчера задач из меню Win+X
    2. В диспетчере задач перейдите на вкладку «Подробности». Если она не отображается, сначала нажмите по кнопке «Подробнее» внизу окна диспетчера задач.
    3. Нажмите правой кнопкой мыши по процессу, приоритет которого следует изменить.
    4. Выберите в контекстном меню пункт «Задать приоритет» и установите одно из значений: Реального времени, Высокий, Выше среднего, Обычный, Ниже среднего, Низкий. Задать приоритет процесса в Windows 11 и Windows 10
    5. Подтвердите изменение приоритета. Учитывайте, что в случаях, когда вы задаете приоритет для важных, постоянно используемых для работы системных процессов, предупреждение о том, что «Изменение приоритета некоторых процессов может нарушить стабильность системы» может оказаться правдой. Подтверждение изменения приоритета процесса

    Что касается доступных для выбора вариантов приоритета:

    • Реального времени — самый высокий доступный уровень приоритета процессов. Задачи процесса, для которого выставлен этот приоритет, выполняются в первую очередь. Учитывайте: если задать этот уровень для вашей игры или программы, это может привести к сбоям в работе системы (из-за накопившихся, но не выполненных задач другими процессами).
    • Высокий — следующий уровень, по умолчанию задан для важных системных процессов, от которых зависит стабильность работы системы. Можно установить для пользовательских программ, но иногда может привести к сбоям.
    • Выше среднего — сравнительно спокойно можно использовать для того, чтобы слегка повысить производительность вашей игры или программы, не навредив работе системных процессов.
    • Обычный — приоритет, с которым работают большинство приложений по умолчанию.
    • Ниже среднего — можно использовать для процессов, завершить которые нельзя, но время выполнения которых не играет роли.
    • Низкий — самый низкий из возможных приоритетов. Ресурсы для задач с этим уровнем выделяются только после выполнения других активных задач.

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

    Что происходит при изменении приоритета процессов и стоит ли его менять

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

    Что касается осмысленности изменения приоритетов процессов:

    • Иногда с помощью таких изменений можно добиться повышения производительности нужного ПО.
    • Меняя приоритеты системных процессов на более низкие легко получить результат в виде системных сбоев. Не следует задавать приоритет для процессов в массовом порядке.
    • Зависания и сбои можно также получить, задав приоритет «Реального времени» для «тяжелых» игр и программ, либо выставив высокие приоритеты сразу для нескольких одновременно выполняемых пользовательских программ.

    И ещё один момент: если ваша задача — повысить производительность в играх, включение встроенного игрового режима в параметрах Windows 11 и Windows 10 (раздел «Игры») точно будет безопаснее и в некоторых случаях может дать более заметный эффект, чем настройка приоритетов выполняемых процессов.

    Видео

    Понравилась статья? Поделить с друзьями:
  • Проблема активации office в windows 11
  • Проблема при восстановлении пк в исходное состояние windows 10
  • Приоритет подключения к интернету windows 10
  • Проблема адаптера беспроводных сетей или точки доступа как устранить windows 10
  • Проблема при возврате пк в исходное состояние что делать windows 10