Если сетевая карта или модуль Wi-Fi уходят в энергосбережение между пакетами, на пробуждение нужно время.
Почему Включено энергосбережение сетевого адаптера, или драйвер устарел → Следствие Задержка выхода из энергосбережения (wake-up), иногда перезапуск устройства → На экране Нерегулярные задержки, изредка фриз на несколько секунд
Основной ответственный Внешние стороны · Внешние стороны · Совместно Команда разработки · Разработка клиента
Команда разработки: задачи
В клиенте для Android во время игры запрашивать режим Wi-Fi с низкой задержкой (WIFI_MODE_FULL_LOW_LATENCY), чтобы отключить энергосбережение Wi-Fi.
Внешние стороны: задачи
Посоветовать игрокам обновить сетевой драйвер и отключить энергосбережение сетевого адаптера в Диспетчере устройств, а если весь экран дёргается и звук хрипит, найти виновный драйвер с помощью LatencyMon.
На графике
Случайные всплески · время DPC и ISR, RTT до роутера
Где смотреть
Записать трассу в Windows Performance Recorder (WPR), найти на графике DPC/ISR в Windows Performance Analyzer (WPA) драйверы с долгим выполнением (столбец Module) и проверить в Диспетчере устройств настройки управления электропитанием сетевого адаптера
Подтверждает
В моменты рывков DPC и ISR сетевого драйвера длятся по несколько ms, или после отключения энергосбережения нерегулярные задержки пропадают
Опровергает
Если DPC короткие, а с отключённым энергосбережением ничего не меняется, это «Помехи и слабый сигнал Wi-Fi» или «Фоновое сканирование Wi-Fi»
Чем проверить
Проверка на стороне игрока
Подробнее
Если драйвер долго занимает CPU обработкой прерываний (в Windows это называют задержкой DPC), игровой поток всё это время тоже не может использовать ядро. Тогда при низкой загрузке CPU весь экран дёргается, а звук хрипит. Найти виновный драйвер помогают инструменты вроде LatencyMon, и чаще всего это драйверы Wi-Fi или сетевой карты.
Источники
Introduction to NDIS Selective SuspendMicrosoft Windows может переводить простаивающий сетевой адаптер в состояние пониженного энергопотребления (выборочная приостановка)
Guidelines for Writing DPC RoutinesMicrosoft Пока выполняется DPC, все потоки на этом ядре стоят, поэтому рекомендуется не превышать 100 µs за раз
Wi-Fi low-latency modeAndroid (Google) В режиме Wi-Fi с низкой задержкой фреймворк Android явно отключает энергосбережение Wi-Fi
CPU AnalysisMicrosoft График DPC/ISR в WPA: длительность каждого непрерывного выполнения DPC или ISR и модуль (Module), в котором находится эта функция