Skip to content

Latest commit

 

History

History
35 lines (18 loc) · 4.77 KB

performance-architecture.ru.md

File metadata and controls

35 lines (18 loc) · 4.77 KB

Монитор производительности

Английская версия | Архитектура проекта | Настройки и команды

Монитор помогает найти причины задержек в игре. Он измеряет время работы движка, CPU и GPU, длительность фоновых задач и сетевой обмен. Результаты доступны на экранной панели, в текстовых дампах и в профилировщике Tracy.

Какие модули участвуют

Монитор находится в engine_mini. Он собирает данные движка, рендерера и клиентских функций, сохраняет историю и рисует панель. Общие средства измерения времени находятся в пакете ncl_perf.

Tracy записывает подробный отчет о работе игры для последующего анализа. Панель, дампы и запись Tracy включаются отдельно: скрытие панели само по себе не отключает остальные средства диагностики.

Что измеряется

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

CPU и GPU также измеряются отдельно. Время CPU известно, когда соответствующая работа закончилась. GPU может завершить рисование позднее, поэтому его результат появляется с задержкой. Монитор относит этот результат к тому изображению, для которого он был измерен.

Фоновые задачи, например расчет слоев радара, выполняются параллельно с игрой. Их длительность показывается отдельно от времени основного кадра.

Жизненный цикл кадра

NitroApi отслеживает начало и завершение кадра. Монитор в engine_mini использует эти сведения, чтобы сохранить результат измерения после завершения работы движка.

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

Если обработку кадра прерывает ошибка движка, измерение остается неполным. Монитор не включает его в статистику и продолжает измерять следующие кадры. Поэтому ошибка не искажает время кадра и не останавливает сбор данных после восстановления игры.

Как читать результаты

Панель показывает последние готовые значения. Разделы обновляются с разной частотой. Если результата еще нет, это не означает, что операция заняла ноль миллисекунд. Периоды обновления и расчет статистики описаны в разделе «Чтение графиков».

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

Порядок сбора дампов и записи Tracy описан в руководстве по монитору, проверочные сценарии в процедуре тестирования.