Когда ядра заняты антивирусной проверкой, обновлением Windows, программой для стримов или видео в браузере, игровой поток не получает процессорного времени и ждёт.
Почему Другие программы надолго занимают ядра CPU → Следствие Игровой поток ждёт, пока планировщик выделит ему ядро → На экране Кадры запаздывают, обработка полученных пакетов тоже
Основной ответственный Внешние стороны · Внешние стороны · Совместно Команда разработки · Разработка клиента
Команда разработки: задачи
Настроить приоритет игровых потоков, писать в лог, снятый в момент микрофризов, общую загрузку CPU на ПК, чтобы отличать случаи, когда виноваты другие программы.
Внешние стороны: задачи
Посоветовать игрокам включить игровой режим Windows и закрывать во время игры ненужные программы (антивирусную проверку, обновление Windows, программу для стримов, видео в браузере).
Цифры для ориентира
Windows обычно выделяет потоку ядро на срок от единиц до десятков ms за раз. Если планировщик хотя бы раз отложит игровой поток, кадр потерян.
На графике
Случайные всплески · общая загрузка CPU на ПК, время кадра
Где смотреть
Смотреть столбец «ЦП» на вкладке «Процессы» Диспетчера задач и записывать счётчик Processor Information(_Total)\% Processor Time в Системном мониторе вместе со временем кадра в PresentMon. Если подозревается антивирус, записать трассу командой New-MpPerformanceRecording и посмотреть в Get-MpPerformanceReport файлы и процессы с самым долгим сканированием
Подтверждает
В моменты микрофризов подскакивает загрузка CPU другими программами (антивирусная проверка, обновление, программа для стримов), или файлы из папки игры оказываются в начале списка по времени сканирования. Если закрыть эту программу или добавить игру в исключения, проблема пропадает
Опровергает
Если загрузка CPU низкая, а весь экран дёргается и звук хрипит, это «Энергосбережение NIC и проблемы драйверов» (задержки DPC)
Чем проверить
Проверка на стороне игрока
Подробнее
Windows даёт программе в активном окне (на переднем плане) чуть более высокий приоритет, но если задач больше, чем ядер, ждёт и игра. Антивирус чаще мешает через «защиту в реальном времени», чем нагрузкой на CPU. Он проверяет файл каждый раз, когда игра его открывает, и остановки при чтении ассетов становятся длиннее.
Источники
MultitaskingMicrosoft Windows выделяет каждому потоку квант времени и по его окончании переключается на следующий поток, квант около 20 ms (зависит от ОС и CPU)
Priority BoostsMicrosoft Процессу активного окна (переднего плана) приоритет поднимается как минимум до уровня фоновых процессов
Performance analyzer for Microsoft Defender AntivirusMicrosoft Запись через New-MpPerformanceRecording, затем Get-MpPerformanceReport показывает файлы, пути и процессы, которые сильнее всего влияют на время сканирования