Hero background image

Инструменты для профилирования и отладки

Эта веб-страница была переведена с помощью машинного перевода для вашего удобства. Мы не можем гарантировать точность или надежность переведенного контента. Если у вас есть вопросы о точности переведенного контента, обращайтесь к официальной английской версии веб-страницы.

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

В этой статье мы предоставляем вам обзор инструментов профилирования и отладки, доступных в Unity, и тех, которые доступны для целевых платформ.

Информация здесь взята из электронной книги, Ультимативное руководство по профилированию игр на Unity (издание Unity 6), доступной для бесплатной загрузки. Электронная книга была создана как внешними, так и внутренними экспертами Unity в области разработки игр, профилирования и оптимизации.

Для лучших результатов используйте как Unity, так и нативные инструменты

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

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

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

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

Модуль Highlights в Profiler Unity
Модуль Highlights в Profiler упрощает понимание того, как ваша игра работает по сравнению с установленным целевым временем кадра. В этом примере требуется много работы по оптимизации как на CPU, так и на GPU, чтобы достичь целевых 60 fps.

Профайлеры Unity

Инструменты профилирования Unity доступны в редакторе и через Менеджер пакетов. Эти инструменты, вместе с Frame Debugger Unity, подробно описаны в электронной книге Ультимативное руководство по профилированию игр на Unity (издание Unity 6).

- Unity Profiler измеряет производительность редактора Unity и вашего приложения в режиме воспроизведения или разработки, когда оно подключено к устройству.

- Пакет Profiling Core предоставляет API, которые вы можете использовать для добавления контекстной информации к захватам Unity Profiler.

- Memory Profiler предоставляет глубокий анализ того, сколько памяти использует ваша игра и какие объекты ее используют.

- Profile Analyzer позволяет вам сравнивать два набора данных профилирования бок о бок, чтобы проанализировать, как ваши изменения влияют на производительность вашего приложения.

- Project Auditor сообщает о выводах и проблемах, связанных со скриптами, активами и кодом в вашем проекте, многие из которых касаются производительности.

Unity также предлагает несколько инструментов отладки, которые дополняют его набор инструментов профилирования. Например, панель статистики отображения Rendering Debugger позволяет вам видеть ограниченный набор показателей производительности и маркеров (ЦП + ГП) на сборках разработки без подключения редактора.

Frame Debugger в Unity
Используйте Frame Debugger для анализа того, как происходит выявленная повторная отрисовка.

Встроенные профилировщики

Android / Arm

- Android Studio: Последняя версия Android Studio включает новый Android Profiler, который заменяет предыдущие инструменты Android Monitor. Используйте его для сбора данных в реальном времени о аппаратных ресурсах на устройствах Android.

- Arm Performance Studio: Набор инструментов, который поможет вам профилировать и отлаживать ваши игры в больших деталях, предназначенный для устройств на базе Arm.

- Snapdragon Profiler: Специально для устройств с чипсетом Snapdragon. Анализируйте данные ЦП, ГП, DSP, памяти, энергии, тепла и сети, чтобы помочь найти и устранить узкие места в производительности.

Intel

- Intel VTune: Быстро находите и исправляйте узкие места производительности на платформах Intel с помощью этого набора инструментов. Только для процессоров Intel.

- Intel GPA suite: Набор инструментов, сосредоточенных на графике, чтобы помочь вам улучшить производительность вашей игры, быстро выявляя проблемные области.

Xbox / PC
- PIX: PIX — это инструмент настройки производительности и отладки для разработчиков игр на Windows и Xbox, использующих DirectX 12. Он включает инструменты для понимания и анализа производительности ЦП и ГП, а также для мониторинга различных счетчиков производительности в реальном времени.

PC / Universal

- AMD μProf: AMD uProf — это инструмент анализа производительности для понимания и профилирования производительности приложений, работающих на оборудовании AMD.

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

- Samply: Samply — это инструмент профилирования ЦП с открытым исходным кодом, который использует профилировщик Firefox в качестве своего интерфейса. Он работает на macOS, Linux и Windows.

- Superluminal: Superluminal — это высокопроизводительный, высокочастотный профилировщик, который поддерживает профилирование приложений на Windows, Xbox One и PlayStation, написанных на C++, Rust и .NET. Это платный продукт, и для его использования необходимо получить лицензию. Посмотрите нашу статью о дискуссиях, чтобы быстро ознакомиться с тем, как начать.

PlayStation

- Инструменты профилирования CPU доступны для оборудования PlayStation. Для получения более подробной информации вам необходимо быть зарегистрированным разработчиком PlayStation®, начните здесь.

iOS

- Инструменты Xcode и отладчик кадров XCode: Инструменты — это мощный и гибкий инструмент для анализа производительности и тестирования, который является частью набора инструментов Xcode.

WebGL

- Профилировщик Firefox: Изучите стеки вызовов и просматривайте графики пламени для сборок Unity WebGL (среди прочего) с помощью профилировщика Firefox. Он также включает инструмент сравнения для просмотра захватов профилирования бок о бок.

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

Анализатор производительности Streamline от Arm
Streamline Performance Analyzer от Arm содержит множество информации счетчиков производительности, которую можно записать во время сеансов профилирования в реальном времени на целевом оборудовании Arm. Это отлично подходит для выявления проблем с производительностью, таких как насыщение пропускной способности памяти, возникающее из-за избыточного рисования.

Инструменты отладки и профилирования GPU

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

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

- Arm Streamline: Часть программного пакета Arm Performance Studio, сосредоточенная на измерении производительности CPU и GPU с низкими накладными расходами.

- Arm Frame Advisor: Часть программного пакета Arm Performance Studio, сосредоточенная на профилировании API на основе кадров.

- RenderDoc: Отладчик GPU для настольных и мобильных платформ, сосредоточенный на отладке API на основе кадров.

- Intel GPA: Графическая профилировка для платформ на базе Intel

- Инструменты отладки захвата кадров Apple: Отладка GPU для платформ Apple

- Диагностика графики Visual Studio: Выберите это и/или PIX для платформ на базе DirectX, таких как Windows или Xbox

- NVIDIA Nsight Frame Debugger: Отладчик кадров на основе OpenGL для GPU NVIDIA

- Набор инструментов разработчика AMD Radeon: Профилировщик GPU для GPU AMD

- Отладчик кадров Xcode: Для iOS и macOS.

Электронные книги Unity
Больше советов для Unity 6

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

Профилирование и отладка с помощью Unity и инструментов нативной платформы | Unity