
Как оптимизировать вашу игру с помощью Profile Analyzer
Эта страница предоставляет углубленное введение в добавление Profile Analyzer в ваш арсенал инструментов профилирования Unity и нативных платформ.
Profile Analyzer является одной из многих функций, описанных в электронной книге Ультимативное руководство по профилированию игр Unity (издание Unity 6). Этот гид объединяет продвинутые знания и советы от внешних и внутренних экспертов Unity о том, как профилировать приложение в Unity, управлять его памятью и оптимизировать его потребление энергии от начала до конца.

Руководство по Profile Analyzer
Хотите узнать, где улучшить производительность? Хотите сравнить производительность до и после изменений? Знаете ли вы о влиянии, которое оказывает перенос проекта со старой версии Unity на новую? Profile Analyzer поможет вам ответить на такие вопросы. В то время как стандартный профайлер Unity позволяет выполнять анализ одного кадра, Profile Analyzer может агрегировать и визуализировать данные профилирования, захваченные из набора кадров профайлера Unity.
Обзор Profile Analyzer
Хотя стандартный профайлер Unity позволяет выполнять детальный анализ отдельных кадров, Profile Analyzer агрегирует и визуализирует данные маркеров, захваченные из нескольких кадров профайлера Unity, предоставляя более широкий обзор, "большую картину". Это упрощает сравнение и анализ данных производительности по нескольким кадрам или по различным сессиям профилирования.
Чтобы начать работу с Profile Analyzer:
1. Установите пакет Profile Analyzer через Window > Package Management > Package Manager.
2. Перейдите в реестр Unity и просмотрите или используйте фильтр поиска, чтобы найти пакет Profile Analyzer.
Profile Analyzer извлекает набор кадров, захваченных в профайлере Unity, и выполняет статистический анализ над ними. Данные, которые он отображает, предоставляют полезную информацию о времени выполнения для каждой функции, такую как минимальное, максимальное, среднее и медианное время.
Поскольку Анализатор профиля отлично подходит для сравнения наборов данных, рассмотрите возможность его использования на протяжении всей разработки игры, чтобы получить ясность в вопросах производительности и оптимизации. Вы также можете использовать его для A/B тестирования игрового сценария на предмет различий в производительности, сравнивать данные до и после профилирования для рефакторинга кода и оптимизации, новых функций или даже обновлений версии Unity. Полезный совет: сохраняйте сессии профилирования, чтобы сравнить производительность до и после работы по оптимизации, используя Анализатор профиля.
Анализатор профиля помогает вам определить, на что сосредоточить свои усилия. Он предоставляет вам способ сравнить два захвата производительности Unity бок о бок и исследовать влияние ваших изменений.
Анализатор профиля дополняет анализ одного кадра, уже доступный в Профайлере Unity. Он агрегирует и визуализирует данные о кадрах и маркерах из ряда кадров Профайлера Unity, чтобы помочь вам увидеть высокоуровневые паттерны производительности с течением времени на протяжении многих кадров.
Анализатор профиля проводит анализ производительности ЦП на нескольких кадрах из текущей сессии Профайлера или из ранее сохраненных захватов. Инструмент поставляется со статистикой и визуализациями, чтобы помочь вам быстро обработать информацию, хранящуюся в захватах. Его Комплексная фильтрация также позволяет вам углубиться в разделы, которые вас интересуют. Вы можете использовать его для сравнения двух наборов данных или экспортировать необработанные данные для анализа с другими инструментами.
Вы можете установить Анализатор профиля через Окно > Диспетчер пакетов.

Начать работу
Для начала вам нужно сначала захватить данные с помощью Профайлера, а затем заполнить Анализатор профиля этими данными для проведения анализа.
Использование агрегированных данных дает вам более информированный способ взглянуть на то, что происходит в вашей игре, а не просматривать только один кадр за раз. Например, в захвате игрового процесса на 300 кадров (10 секунд) или в 20-секундной последовательности загрузки вам может понадобиться знать:
- Каковы самые большие затраты ЦП на основных и рендерных потоках?
- Какова средняя/медианная/общая стоимость каждого из этих маркеров?
Ответы на эти важные вопросы могут помочь вам выявить самые большие проблемы и приоритизировать их оптимизацию.
Статистика и детали, доступные с Анализатором профиля, позволяют вам глубже погрузиться в характеристики производительности вашего кода при выполнении на нескольких кадрах или даже в сравнении с предыдущими сессиями захвата профиля.

Виды Profile Analyzer
Обратите внимание на выбор Режим в верхней части окна. Profile Analyzer имеет несколько представлений и подходов для анализа данных профилирования. Используйте различные представления для выбора, сортировки, просмотра и сравнения наборов данных профилирования.

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

Единичный вид
Режим Single view является начальной точкой Profile Analyzer, предоставляя ответы на вопросы о производительности во времени. Режим Single отображает информацию о едином наборе захваченных данных профилирования. Используйте его для анализа того, как маркеры профиля работают в разных кадрах. Этот режим разделен на несколько панелей, которые содержат информацию о времени, а также минимальные, максимальные, медианные, средние и нижние/верхние квартильные значения для кадров, потоков и маркеров.

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

Сравнить изменения производительности
Используйте следующие шаги для сравнения изменений производительности с помощью Profile Analyzer. Вы можете использовать либо опцию Получить данные из активного захвата Unity Profiler, либо опцию Загрузить данные из сохраненной сессии. При загрузке файлы должны быть в формате .pdata анализатора профиля. Для файлов .data профайлера Unity сначала откройте их в окне профайлера, затем используйте "Получить данные" в анализаторе профиля. Также рекомендуется сохранить ваши оригинальные файлы .data из профайлера.
1. Подготовьте тест: Выберите постоянный участок вашей игры для профилирования для значимого сравнения бенчмарков. Сценарный или повторяемый ручной проход лучше всего подходит, чтобы минимизировать случайные побочные эффекты, влияющие на производительность.
2. Запишите данные "до":
- Откройте анализатор профиля (Окно > Анализ > Анализатор профиля).
- В профайлере Unity запишите сессию профилирования вашего выбранного игрового процесса перед тем, как вносить какие-либо оптимизации.
- На вкладке Сравнить анализатора нажмите первую кнопку Получить данные. Это загружает текущий захват из профайлера или, альтернативно, вы можете сохранить сессию.
3. Оптимизируйте и запишите данные "после":
- Примените ваши улучшения кода или производительности.
- Очистите предыдущие данные профайлера Unity, затем запишите новую сессию профилирования того же игрового процесса.
- В анализаторе профиля нажмите вторую кнопку "Получить данные", чтобы загрузить эту новую сессию.
4. Анализируйте различия:
- Панель Сравнение маркеров показывает, как различаются временные показатели маркеров между вашими захватами "до" (слева) и "после" (справа).
- Столбцы, отмеченные < или >, указывают, какой захват имел большее значение для этой метрики.
- Вы можете изменить, какие метрики сравниваются, используя фильтр Столбцы маркеров.
Смотрите страницу входа в представление сравнения для получения дополнительных сведений о каждом столбце сравнения маркеров.
Сравнение медианных и самых длинных кадров
Сравните медианные и самые длинные кадры в одном захвате Profiler, чтобы определить, что происходит в последнем, чего нет в первом, или чтобы увидеть, что занимает больше времени, чем обычно, для завершения.
Откройте представление Сравнения в Анализаторе Профиля и загрузите один и тот же набор данных для левой и правой стороны. Вы также можете загрузить набор данных в одном представлении, а затем переключиться на Сравнение.
Щелкните правой кнопкой мыши на верхнем графике Управление Кадрами и выберите Выбрать Медианный Кадр. Щелкните правой кнопкой мыши на нижнем графике и выберите Выбрать Самый Длинный Кадр.
Панель Сравнения Маркеров Анализатора Профиля обновляется, чтобы отобразить различия.
Еще один полезный трюк для сравнения данных - отсортировать оба графика по длительности кадров (Щелкните правой кнопкой мыши > Упорядочить по Длительности Кадра), затем выберите диапазон в каждом наборе, сосредоточив внимание на или исключив выбросы (кадры, которые непропорционально длинные или короткие).
Это позволяет вам сравнить самые типичные кадры с самыми экстремальными. Данные затем отображаются в таблице Сравнения Маркеров для выбранного диапазона, что упрощает анализ того, что способствует всплескам производительности или несоответствиям.

Быстрые советы по Profile Analyzer
- Углубитесь в пользовательские скрипты (игнорируя уровни API Unity Engine), выбрав Уровень Глубины 4. После фильтрации до этого уровня и просмотра Анализатора Профиля в Режиме Временной Линии, вы можете сопоставить глубину стека вызовов, чтобы сделать выбор здесь – скрипты MonoBehaviour будут отображаться синим цветом на четвертом уровне вниз. Это быстрый способ увидеть, нагружают ли ваши конкретные логика и игровые скрипты сами по себе без какого-либо другого "шума".
- Фильтруйте данные таким же образом для других областей движка Unity, таких как аниматоры или физика движка.
- С правой стороны в разделе Сводка Кадров вы найдете гистограмму диапазона производительности выделенного метода. Наведите курсор на Максимальный Кадр (точный кадр, в котором было найдено максимальное время) для получения кликабельной ссылки для просмотра выбора кадра в Анализаторе Профиля. Используйте этот вид для анализа других факторов, которые потенциально способствуют высокому максимальному времени кадра.
- Если у вас есть широкоформатный экран или два монитора, может быть полезно открыть Анализатор Профиля и Анализатор Unity рядом друг с другом. Эта настройка позволяет вам дважды щелкнуть по кадру в Анализаторе Профиля, чтобы автоматически выбрать тот же кадр в Анализаторе Unity, откуда вы можете дополнительно исследовать его, используя представления Временной Линии или Иерархии.
Узнайте больше о Profiler Analyzer с помощью этих ресурсов:
- Руководство и учебник по Profile Analyzer
- Анализ производительности CPU с помощью Profile Analyzer Unity

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