Я решил свою старую проблему с просадками фпс!
Ранее я писал про проблему с кадрами. Ознакомится можно в предыдущем посте.
Суть в чем:
i5-12500h 12 ядер 16 потоков
RTX 3060 6GB
16 GB DDR4 3200 MHZ
SSD SAMSUNG 512 GB
На такой конфигурации проблемы с фпс. Пусть это и ноутбук, но он тянет сейчас все и нет нареканий. (Кстати, не в температуре дело оказалось)
Я как-то сидел на ютубе и видосы смотрел разные. Наткнулся на (не реклама) "Рома, просто Рома.". И он рассказал про то, что есть скрытые настройки биос на ноутбуках MSI (Как буду дома, напишу комбинацию). Я решил покапаться и попробовал поиграться с настройками.
Первое, о чем я подумал: "Зачем мне энергоэффективные ядра?". Нет, они важны, очень помогают при работе от батареи. Но сейчас я хочу поиграть. И решил их отключить...
Что ж... Это помогло :/
Я до конца не понял, в чем проблема была и почему энергоэффективные ядра сажают кадры, но это работает. Возможно из-за разности частот на ядрах по сравнению с производительными. Процессор теперь использует только 4 ядра и 8 потоков. Но теперь играется плавнее.
Я решил проверить там, где меня это все бесило: Bluestucks в Standoff 2 (Да, я играю в эту помойку, мне нечем занятся). Фризы пропали, а я доволен :)
Потом проверю фпс Metro last light и exodus. Если дело было только в этих ядрах, то... Кому-то это будет полезно.
Оптимизация звука на Windows с использованием Process Governor
Всем привет!
В данном посте я расскажу предысторию появления моей программы Process Governor и покажу на примере своего ПК процесс оптимизации звука на компьютере с использованием этой программы. Данный способ позволяет повысить стабильность звука и уменьшить появление заиканий и потрескиваний, особенно при высокой нагрузке на процессор.
Предыстория проблемы
Исходная ситуация
Моя история началась с нестабильности звука на моем компьютере, особенно тогда, когда я активно использовал аудиообработку в реальном времени. Заикания и потрескивания стали нормой в моменты онлайн-выступлений и приложений, которые обрабатывали звук через несколько аудиоэффектов. Это было не только раздражающим, но и влияло на качество моих аудио-проектов.
Поиск решения
Я начал искать способы решения этой проблемы. Это включало в себя эксперименты с настройками аудиоинтерфейса, оптимизацию параметров в операционной системе, и даже переустановку аудио-драйверов. Некоторые из этих методов приводили к временному улучшению, но с ростом числа аудиоэффектов и обработчиков звука, проблема возвращалась.
Радикальное и эффективное решение
Чтобы найти более радикальное и надежное решение, я пришел к идее перераспределения вычислительных ресурсов моего ПК. Я предположил, что выделение отдельных ядер процессора для обработки аудиосигнала, а остальных ядер для обычных задач, поможет решить проблему. Это должно было обеспечить стабильное воспроизведение звука даже при высокой нагрузке на ЦП.
Поэтому, я решил вручную распределить основные аудиопроцессы на отдельные ядра и провести тестирование. Это оказалось эффективным решением. Однако, чтобы упростить и автоматизировать этот процесс, я решил создать специальное приложение, которое сможет управлять распределением процессорных ресурсов между аудиопроцессами и остальными задачами.
Рождение Process Governor
Из этой необходимости родилась идея создать программу, которая способна управлять процессами/службами Windows и их соответствиями к ядрам процессора. Так появился Process Governor. С его помощью, я смог оптимизировать аудиопроцессы и службы, установив им высокий приоритет выполнения в режиме реального времени, а так же распределив их по ядрам процессора. Это позволило обеспечить стабильное и качественное воспроизведение звука, даже в самых требовательных сценариях.
Процессы и службы, влияющие на звук
Для обработки звука, я использую следующие программы:
Voicemeeter - виртуальный микшер.
Equalizer APO - для обработки звука на выходных устройствах Voicemeeter (наушники и колонки).
Kushview Element - DAW для обработки звука на входных устройствах Voicemeeter (микрофон).
Кроме этого, существуют службы и процессы Windows, которые также взаимодействуют со звуком и являются общими для всех пользователей Windows:
Служба AudioSrv.
Служба AudioEndpointBuilder.
Процесс Audiodg.exe.
Подготовка к настройке
Список процессов и служб
Для настройки, я создал список процессов и служб, ответственных за обработку звука:
voicemeeter8x64.exe - Voicemeeter.
voicemeeterclient.exe - Процесс Equalizer APO для интеграции с Voicemeeter.
element.exe - Kushview Element.
Audiodg.exe.
Служба AudioSrv.
Служба AudioEndpointBuilder.
Распределение процессорных ресурсов
Примечание:
Process Governor воспринимает потоки как ядра, потому когда будет идти речь о ядрах, помните, что под ними подразумеваются еще и потоки.
Нумерация ядер начинается с 0.
У меня установлен процессор с 12 ядрами (24 потоками), и я предлагаю следующее распределение ресурсов:
Первые 8 ядер/16 потоков предназначены для всех процессов, кроме звука (с 0-го по 15-ый поток).
Последние 4 ядра/8 потоков отведены под звук (с 16-го по 23-й поток).
Также, я рекомендую установить максимальный приоритет - реального времени - для всех процессов, отвечающих за звук.
Примечание:
Опытным путем выяснил, что изменение соответствия ядер для сервисов AudioSrv и
AudioEndpointBuilder приведет к усугублению проблем в звуке. Поэтому для этих сервисов изменим только приоритет, а соответствие ядер трогать не будем.
Настройка Process Governor
Для начала настройки, я предлагаю обратиться к README-файлу для установки утилиты и понимания файла конфигурации config.json.
Исходя из README и информации о подготовке к настройкам, предлагаю следующий файл-конфигурации config.json для Process Governor:
{
"rules": [
{
"processSelector": "voicemeeter8x64.exe",
"priority": "Realtime",
"affinity": "16-23"
},
{
"processSelector": "voicemeeterclient.exe ",
"priority": "Realtime",
"affinity": "16-23"
},
{
"processSelector": "element.exe",
"priority": "Realtime",
"affinity": "16-23"
},
{
"processSelector": "Audiodg.exe",
"priority": "Realtime",
"affinity": "16-23"
},
{
"serviceSelector": "AudioSrv",
"priority": "Realtime"
},
{
"serviceSelector": "AudioEndpointBuilder",
"priority": "Realtime"
},
{
"processSelector": "*",
"affinity": "0-15"
}
]
}
Обратите внимание:
Указаны процессы и службы, ответственные за звук в serviceSelector и processSelector.
Установлен приоритет "реального времени" для всех процессов, отвечающих за звук:
"priority": "Realtime"
Указаны соответствия ядер CPU для различных сценариев в:
"affinity": "<номера ядер>"
Для сервисов намеренно не указаны ядра, только приоритет.
Так же обратите внимание на последнее правило:
"processSelector": "*",
"affinity": "0-15"
Здесь селектор равен "*", что говорит о том, что ЛЮБОЙ процесс будет подвержен правилу с указанием ядер 0-15. Так как правила в Process Governor выполняются по порядку до первого совпадения и правило описано последним, то и выполняться правило будет только в том случае, когда первые правила не сработали. Т.е. остальные процессы, которые не относятся к звуку, автоматически отправятся на ядра 0-15.
Запуск Process Governor
Для применения настроек, следует поместить файл конфигурации config.json рядом с программой Process Governor и запустить ее. Программа будет работать в фоне, регулярно применяя правила для новых процессов и доступна в системном трее.
Заключение
Настройка Process Governor предоставляет мощное средство для оптимизации звука на моем ПК, улучшая его стабильность и качество. Я надеюсь, что данная статья поможет вам достичь лучших результатов в области аудиообработки.
Деление ядер
Ядра процессора
Здравствуйте.
у меня проц i5 9400f.
я слышал что если использовать все ядра процессора то будет + fps.
в итоге через msconfig выставил максимальное количество ядер.
и потом почитал то что это все дело убивает ПК, я сразу же пошел и сделал все по умолчанию. Мне стоит переживать за мой ПК или нет?
Первый опыт с выращиванием кедров
Знакомый привез кедровые орешки с Сибири. Попытки расколоть и съесть получились слишком энергозатратны поэтому было решено их посадить.
1. Отобраны были самые большие, отмыты и замочены в водичке на 3 дня.
2. После того как нужные нам орешки опустились на дно, вода была слита и последние поплавали в растворе марганцовки.
3. Далее многострадальные загремели в холодильник, вот в таком виде...