Оптимизация проекта в Unity. Что такое Profiler и для чего он нужен

insert_comment 0
visibility 395
|
16.10.2020

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

Чтобы открыть Profiler, вам следует выбрать пункт Window > Analysis > Profiler

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

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

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

Чтобы запустить профайлер для вашей игры, необходимо в Build Settings включить параметры Development Build и Autoconnect Profiler. При запуске приложения профайлер будет запускаться автоматически. Подключить профайлер также можно в Profiler Controls через выпадающий списокв редакторе.

Важно! Если вы создаете сборку под Android, то в Edit > Project Settings > Editor укажите Any Device

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

Deep Profile

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

Но учтите, что глубокое профилирование требует больших ресурсов и использует большое количество памяти. Это приводит к тому, что ваше приложение работает значительно медленнее во время профилирования. Deep Profiling лучше подходит для небольших игр с простыми скриптами.

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

Для включения этого режима на ПК используйте аргумент командной строки -deepprofiling.

Для включения этого режима на Android используйте аргумент командной строки adb.

Например:

~$ adb shell am start -n com.company.game/com.unity3d.player.UnityPlayerActivity -e 'unity' '-deepprofiling'

Для запуска в редакторе достаточно нажать кнопку в окне Profiler

Frame Debugger

Frame Debugger позволяет нам остановить игру на определенном кадре и просмотреть отдельные вызовы отрисовки, которые используются при построении этого кадра. Помимо просмотра,отладчик также дает возможность пошагового выполнения, что дает нам возможность посмотреть, как выстраивается сцена.

Открывается отладчик кадров через Window > Analysis > Frame Debugger

При щелчке по элементу на сцене вы сможете увидеть то, в каком виде была модель до вызова отрисовки

Как вы могли заметить, в верхней части есть определенное число из 19. Это порядок отрисовки,стрелочками перемещаясь от 0 до конца (это может быть и не 19) вы можете посмотреть, как выстраивается ваша сцена.

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

7 курсов бесплатно

Начните карьеру разработчика игр бесплатно!


    Комментарии


    Отзывы