Внезапные просадки FPS в играх: как понять, что их вызывает

Частота кадров, которая упала и осталась внизу, — это не та же проблема, что рывок, и у неё короткий список причин, каждую из которых можно отличить, следя за двумя-тремя числами прямо во время просадки.

Было 140. Стало 70, и так и остаётся, пока не перезапустишь игру — или пока не остановишься, не дашь машине остыть и не вернёшься, чтобы обнаружить, что всё в порядке.

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

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

Три вопроса, которые делят всё поле

Прежде чем трогать настройки, ответь на них — каждый убирает примерно половину списка.

  1. Проходит ли само? Просадка, которая исчезает после минуты стояния на месте, указывает на нагрев или фоновую задачу. Та, что держится до перезапуска игры, указывает на собственное состояние игры или событие драйвера.
  2. Это во всех играх или в одной? Все игры указывают на машину. Одна игра — на её настройки, её обновление или её серверы.
  3. Это привязано к времени в сессии или к месту на карте? Время — значит нагрев и питание. Место — значит сцена стала тяжелее или что-то подгружается.

Дальше смотри на частоты и температуры во время события, а не после. Просадка, невидимая задним числом, вживую очевидна: либо частота упала, либо нет.

Нагрев и потолок мощности

Причина, которую стоит исключить, когда «падает через двадцать минут».

Чипы от нагрева не отказывают — они замедляются. Когда достигнут предел по температуре или по мощности, частота опускается и держится внизу столько, сколько длится условие. Решение принимает сама прошивка — собственная защита платы или процессора, а не Windows, — поэтому в диспетчере задач этому нет объяснения. На стороне видеокарты драйвер назовёт причину, если спросить его под нагрузкой: тепловая защита, лимит мощности, выставленный ниже штатного, программа, попросившая драйвер сбавить, или неплотно вставленный разъём питания PCIe.

Как это увидеть: оно коррелирует с длительностью сессии и температурой в комнате, а частота во время просадки заметно ниже, чем в начале.

Что делать: крепление кулера, пыль, продув корпуса. Потом проверь, не был ли лимит мощности понижен намеренно — в прошивке, в утилите производителя или в сохранённом профиле видеокарты.

Машина сменила состояние питания

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

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

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

Сброс драйвера

Экран чернеет на секунду-две, возвращается, и всё стало медленнее — или игра закрылась. Windows зафиксировала зависание драйвера дисплея и его сброс.

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

Что делать: если у тебя применено смещение частоты памяти или ядра, уменьши его вдвое и проверь один матч; обнули и проверь ещё раз. Восстановление после сбоя видеокарты разбирает остальное, включая возврат значения Windows по умолчанию, если какая-то прежняя программа подняла таймаут вместо того, чтобы устранить причину.

Три следа, которые Windows и так хранит

1. Сброс драйвера дисплея (событие 4101)

Когда драйвер дисплея перестаёт отвечать и сбрасывается, Windows записывает событие 4101 в журнал System. Сканер фризов считает такие события за последние 24 часа и сообщает о них как о своей единственной критической находке; больше десяти он показывает как «10+», а не делает вид, что знает точное число. Если сам журнал прочитать не удаётся, сканер говорит, что проверка не смогла выполниться, а не называет машину чистой.

Чтобы посмотреть самому, в PowerShell:

Get-WinEvent -LogName System -FilterXPath "*[System[Provider[@Name='Display'] and (EventID=4101) and TimeCreated[timediff(@SystemTime) <= 86400000]]]" -MaxEvents 10

Если таких нет, PowerShell отвечает ошибкой о том, что ни одно событие не соответствует условиям отбора: это и есть ответ «за последние сутки — ни одного». Если он пишет, что не может прочитать журнал, запусти PowerShell от имени администратора и попробуй снова.

Путь назад — тот, что в разделе выше: уменьши или убери разгон, проверь охлаждение и Восстановление после сбоя видеокарты, если какая-то старая программа подняла таймаут драйвера. Сам w0a этот таймаут поднимать не станет: более долгий сторожевой таймер лишь удлиняет каждое зависание, а отключение восстановления убирает его совсем.

2. Прошивка удерживала частоту внизу (событие 37)

Событие 37 от Microsoft-Windows-Kernel-Processor-Power — это запись прошивки о том, что она опустила частоту процессора и держала её там целыми секундами подряд; сколько именно, говорит текст самого события. Это важно, потому что показание температуры показывает только тот момент, когда ты смотришь: машина, которая троттлила час назад и с тех пор остыла, выглядит совершенно здоровой, и это событие — единственный след того часа, оставшийся на ней.

Сканер считает такие события за последние 24 часа, только при питании от сети — на батарее то же событие означает, что платформа делает свою работу, — и предупреждает при трёх и более. Одно-два — обычное дело в первые секунды после загрузки, пока плата устанавливает свои пределы мощности.

Get-WinEvent -LogName System -FilterXPath "*[System[Provider[@Name='Microsoft-Windows-Kernel-Processor-Power'] and (EventID=37) and TimeCreated[timediff(@SystemTime) <= 86400000]]]" -MaxEvents 20

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

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

3. Активная схема ограничивает процессор

Название схемы — не то, что работает. Схема высокой производительности с максимальным состоянием процессора 80% — это ограниченная машина под правильной вывеской. Сканер читает четыре параметра из раздела процессора той схемы, которая активна, при питании от сети:

Параметр (имя, которое использует powercfg)Что сканер считает ограничениемЧто это значит
PERFBOOSTMODE0Турбо выключен: процессор никогда не поднимается выше номинальной частоты.
PROCTHROTTLEMAXот 1 до 99Потолок частоты в процентах.
IDLEDISABLE1Состояния простоя выключены. w0a считает это ограничением, а не настройкой производительности, исходя из рассуждения, что без состояний простоя не остаётся теплового запаса для буста. Это рассуждение из того, как работает буст, а не измерение.
CPMINCORESот 1 до 99Парковка ядер. Не сообщается на гибридных процессорах, где это один из рычагов, которыми Windows распределяет работу, и на процессорах с V-Cache на двух кристаллах, где именно так драйвер держит игру на кристалле с кэшем. См. Ryzen X3D, Game Bar и парковка ядер.

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

Чтобы посмотреть самому, в командной строке или PowerShell:

powercfg /getactivescheme
powercfg /query SCHEME_CURRENT SUB_PROCESSOR PROCTHROTTLEMAX
powercfg /query SCHEME_CURRENT SUB_PROCESSOR IDLEDISABLE
powercfg /query SCHEME_CURRENT SUB_PROCESSOR PERFBOOSTMODE
powercfg /query SCHEME_CURRENT SUB_PROCESSOR CPMINCORES

Как читать ответы:

Путь назад, параметр за параметром:

Это началось сразу после обновления

Здесь прячутся две очень разные вещи.

Обновление игры или драйвера обесценивает кэш шейдеров, и игра докомпилирует их по ходу. Частота кадров действительно ниже какое-то время, а потом перестаёт быть ниже. Она сходит на нет — это и есть подпись. Фризы компиляции шейдеров объясняет почему и почему внутри этого окна не стоит запускать бенчмарк.

Регрессия в ветке драйвера на нет не сходит. Производители такие вещи признают письменно — в примечаниях к выпуску встречаются строки вида «пониженная производительность в этой игре на ветках новее X». Не откатывайся рефлекторно: доведи обновления до конца, измерь на своей машине и рассматривай другую версию, только если сможешь задокументировать регрессию сам.

Запустилось что-то ещё

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

Частота кадров на самом деле не падала

Ограничение. Если число, на котором ты сидишь, в точности равно частоте обновления монитора, твоему ограничению в игре или ограничению на стороне драйвера — ничего никуда не упирается: ты на потолке, который сам и попросил.

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

Это одна игра, и со счётчиком всё в порядке

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

Если же частота кадров просто ниже, чем должна быть, а видеокарта при этом простаивает, это отдельный диагноз со своим списком: Видеокарта не на 100% проходит его по порядку.

Прогон, который даёт ответ

  1. Сними запись обычной сессии, пока ничего не сломалось, и сохрани её. Как читать результаты бенчмарка объясняет, как это сделать и почему среднее — самое бесполезное число там.
  2. Когда просадка случится, запиши частоты и температуры во время неё, а не после.
  3. Меняй одну вещь, потом воспроизводи ту же сцену и ту же длительность сессии.
  4. Суди по собственному разбросу от прогона к прогону. Если три прогона без изменений расходятся сильнее, чем разница, которой ты доволен, — ты нашёл шум.

Чего с просадкой делать не надо

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

То же касается настроек питания: ни один из четырёх параметров выше — не переключатель «производительности», который надо перевернуть в другую сторону. Выключенный турбо держит процессор на номинальной частоте, а собственный сканер w0a тоже помечает выключенные состояния простоя как ограничение, где бы их ни нашёл.

Похожие статьи

Играешь в CS2? Какие параметры запуска ещё что-то делают и где в меню видео на самом деле лежат кадры: Как повысить FPS в CS2 и откуда берутся микрофризы: чек-лист по замерам

w0a не меняет ни одной настройки Windows, пока ты не попросишь, а твик сохраняет старое значение, прежде чем записать новое. Сообщить мне

Эта страница помогла?

Чего не хватило или что не сработало? Мы читаем каждый такой ответ.

Если эта страница не решила проблему, напиши нам — скажи, какую статью ты читал, и мы её исправим.