Инженерная практика17 / 19

Производительность игры

Что проверять, если игра долго запускается, тормозит или расходует всё больше памяти.

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

Для поиска причины используем следующие вкладки:

  • Network — «Сеть»: какие файлы загружает игра, каков их размер и сколько длится загрузка.
  • Performance — «Производительность»: запись работы страницы. По ней можно найти, какая функция долго выполняется или сколько времени занимает отрисовка кадра.
  • Memory — «Память»: снимки объектов в памяти. Можно сравнить состояние до открытия сцены и после её закрытия и посмотреть, какие объекты остались и что продолжает на них ссылаться.

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

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

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

Что происходит с игрой?

Выберем проблему и посмотрим, что проверить.

СИМПТОМ
Долго ждём начала игрыМеню или первая сцена долго не появляются.
ПРОВЕРИТЬ
Загрузка файлов и запуск кодаЧто занимает время до появления игры.

Во вкладке Network («Сеть») проверим, какие файлы долго загружаются. Во вкладке Performance («Производительность») — что делает код при запуске. Так можно понять, где теряется время.

1 / 3
Основной вывод

Сначала найдём, на что игра тратит время или память. Затем изменим конкретный участок и повторим ту же проверку.

Проверить по первоисточнику ↗

Chrome DevTools · Performance↗Официальные инструменты записи и анализа производительности.Chrome DevTools · Memory↗Официальные инструменты диагностики памяти, утечек и частых сборок.Chrome DevTools · Network↗Просмотр размера файлов и времени их загрузки.