Инструменты для профилирования и отладки
Каждый создатель игр знает, что плавная работа очень важна для создания захватывающего игрового процесса, а для этого необходимо создать профиль игры.
Ознакомьтесь с инструментами профилирования и отладки, доступными в Unity, а также с инструментами, доступными для целевых платформ.
Приведенная здесь информация является выдержкой из электронной книги " Ultimate guide to profiling Unity games ", которую можно скачать бесплатно. Электронная книга была создана как внешними, так и внутренними экспертами Unity в области разработки, профилирования и оптимизации игр.
Профилирование похоже на работу детектива, разгадывающего тайны того, почему производительность вашего приложения падает или почему код выделяет избыточную память. Наилучшие результаты от профилирования достигаются при планировании на ранних этапах жизненного цикла разработки проекта. Это постоянный проактивный и итеративный процесс. Благодаря раннему и частому профилированию, а не только перед отправкой игры, вы и ваша команда сможете понять и установить "подпись производительности" для проекта. Если, например, производительность упадет, вы сможете легко заметить, когда что-то пошло не так, и быстро устранить проблему.
Наиболее точные результаты профилирования получаются при запуске и профилировании сборок на целевых устройствах, а также при использовании специфических для конкретной платформы инструментов для изучения аппаратных характеристик каждой целевой платформы.
Unity поддерживает ряд бесплатных мощных профайлеров для анализа и оптимизации кода в редакторе и на вашем оборудовании. Существует также несколько отличных инструментов профилирования, разработанных для каждой целевой платформы, например, от Arm, Apple, Sony и Microsoft. Использование комбинации обоих методов позволяет получить более целостное представление о производительности приложений на всех целевых устройствах.
Инструменты профилирования Unity доступны в редакторе и менеджере пакетов. Каждый инструмент специализируется на профилировании различных частей вашего проекта:
- Unity Profiler поможет вам измерить производительность проекта и определить, какие процессы могут вызывать проблемы. Profiler собирает и отображает данные, например, о том, сколько процессорного времени используется для различных задач, от аудио и физики до рендеринга и анимации. Он измеряет производительность редактора Unity, вашего приложения в режиме Play и подключается к устройству, на котором запущено ваше приложение в режиме разработки. Используйте этот важный инструмент, чтобы начать профилирование. Для начала ознакомьтесь с этим курсом по профилированию.
- Memory Profiler обеспечивает глубокий анализ производительности памяти. Сокращение использования памяти поможет вам уменьшить количество сбоев, сократить время загрузки и сделать проект совместимым со старыми устройствами. В настоящее время Memory Profiler находится в стадии предварительного просмотра, но ожидается, что он будет проверен в Unity 2022 LTS.
- Анализатор профиля объединяет и визуализирует данные кадров и маркеров из набора кадров Unity Profiler, чтобы помочь вам изучить их поведение на протяжении многих кадров. (Это дополняет однокадровый анализ, уже доступный в Unity Profiler). Он также позволяет сравнить два набора данных профилирования, чтобы определить, как ваши изменения влияют на производительность приложения.
- С помощью Frame Debugger можно остановить воспроизведение запущенной игры на определенном кадре, чтобы просмотреть отдельные вызовы отрисовки, используемые для его отображения. Помимо перечисления вызовов рисования, отладчик позволяет выполнять их по одному за раз, чтобы вы могли увидеть, как сцена строится из графических элементов.
- Пакет Profiling Core предоставляет API для добавления контекстной информации к захватам Unity Profiler.
Android / Arm
- Android Studio: Последняя версия Android Studio включает в себя новый Android Profiler, который заменил предыдущие инструменты Android Monitor. Используйте его для сбора данных об аппаратных ресурсах Android-устройств в режиме реального времени.
- Мобильная студия Arm: Набор инструментов для детальной настройки и отладки игр, предназначенный для устройств с аппаратным обеспечением Arm.
- Snapdragon Profiler: Специально для устройств с чипсетом Snapdragon. Анализируйте данные CPU, GPU, DSP, памяти, энергопотребления, теплового режима и сети, чтобы найти и устранить узкие места в производительности.
Intel
- Intel VTune: С помощью этого набора инструментов можно быстро найти и устранить узкие места в производительности на платформах Intel. Только для процессоров Intel.
- Набор Intel GPA: Набор инструментов, ориентированных на работу с графикой, поможет вам улучшить производительность игры, быстро выявив проблемные места.
Xbox / Windows
- PIX: PIX - это инструмент настройки производительности и отладки для разработчиков игр для Windows и Xbox, использующих DirectX 12. Он включает в себя инструменты для понимания и анализа производительности CPU и GPU, а также для мониторинга различных счетчиков производительности в режиме реального времени. Чтобы получить дополнительную информацию об использовании PIX для разработки игр для Xbox, зарегистрируйтесь в качестве разработчика Xbox.
ПК / Универсальный
- AMD μПроф: AMD uProf - это инструмент анализа производительности для понимания и профилирования производительности приложений, работающих на оборудовании AMD.
- NVIDIA NSight: Инструментарий, позволяющий разработчикам создавать, отлаживать, профилировать и разрабатывать ведущее в своем классе и передовое программное обеспечение с использованием новейшего оборудования для визуальных вычислений от NVIDIA.
- Суперлуминал: Superluminal - это высокопроизводительный, высокочастотный профилировщик, который поддерживает профилирование приложений для Windows, Xbox One и PlayStation, написанных на C++, Rust и .NET. Однако это платный продукт, и для его использования необходимо получить лицензию.
PlayStation
- Для оборудования PlayStation доступны инструменты профилирования процессора. Для получения более подробной информации вам необходимо быть зарегистрированным разработчиком PlayStation®.
iOS
- Инструменты Xcode и отладчик Xcode Frame Debugger: Instruments - это мощный и гибкий инструмент для анализа и тестирования производительности, входящий в набор инструментов Xcode.
WebGL
- Firefox Profiler: Копайтесь в стеках вызовов и просматривайте графики пламени для сборок Unity WebGL (помимо всего прочего) с помощью Firefox Profiler. Кроме того, в нем есть инструмент сравнения, позволяющий рассмотреть профилирующие снимки в сравнении друг с другом.
- Производительность Chrome DevTools: Еще один инструмент для веб-браузера, который можно использовать для профилирования сборок Unity WebGL.
В то время как инструмент Unity Frame Debugger фиксирует и иллюстрирует вызовы рисования, посылаемые CPU, следующие инструменты могут помочь вам показать, что делает GPU, когда получает эти команды.
Некоторые из них ориентированы на конкретную платформу и обеспечивают более тесную интеграцию с ней. Посмотрите на инструменты, относящиеся к интересующим вас платформам:
- Графический анализатор Arm Graphics Analyzer: Входит в состав программного пакета Mobile Studio компании Arm
- RenderDoc: Отладчик GPU для настольных и мобильных платформ
- Intel GPA: Профилирование графики для платформ на базе Intel
- Средства отладки Apple Frame Capture: Отладка GPU для платформ Apple
- Графическая диагностика Visual Studio: Выберите этот и/или PIX для платформ на базе DirectX, таких как Windows или Xbox.
- Отладчик кадров NVIDIA Nsight: Отладчик кадров на базе OpenGL для графических процессоров NVIDIA
- AMD Radeon Developer Tool Suite: Профилировщик GPU для графических процессоров AMD
- Отладчик кадров Xcode: Для iOS и macOS
Бесплатно скачайте электронную книгу " Ultimate guide to profiling Unity games", чтобы получить все советы и лучшие практики.