Version: 5.3 (switch to 5.4b)
The Profiler Window
Область CPU Usage

Окно Profiler

Подключение к проигрывателям Unity

Профайлер может быть подключен к вашему приложению, выполняющемся прямо на устройстве, либо к проигрывателю, запущенному на другом компьютере. В выпадающем меню Active Profiler отобразятся все проигрыватели, запущенные на устройствах и компьютерах в текущей локальной сети. Имена этих проигрывателей формируются из их типа и имён хостов, на которых они запущены, например “iPhonePlayer (iPhone Тома)”. Чтобы профайлер мог подключиться к проигрывателю, проигрыватель должен быть создан с включённым флажком Development Build в диалоговом окне Build Settings. В том же диалоге можно найти флажок, который позволит автоматически подключать профайлер к проигрывателю при запуске приложения: Autoconnect Profiler.

Элементы управления профайлера

Элементы управления профайлера размещены на панели инструментов в верхней части окна. Используйте их для включения и отключения профайлинга, перемещения между записанными профайлером кадрами и так далее. Элементы управления для перемещения по временной шкале находятся в правой части панели инструментов. Заметьте, что при использовании любого из элементов управления для перемещения по шкале, игровой процесс будет автоматически поставлен на паузу. Эти элементы позволяют перейти на первый, предыдущий, следующий или текущий кадр. Профайлер не хранит в памяти все записанные кадры, поэтому упомянутый переход на первый кадр на самом деле подразумевает самый старый, имеющийся в памяти. Кнопка перехода “Current” приводит не только к переходу на текущий кадр, но и к отображению данных в реальном времени в нижней панели. Выпадающее меню Active Profiler позволяет выбрать цель для профайлинга - это может быть редактор или отдельный проигрыватель (например игра, запущенная на подключенном iOS устройстве).

Глубокий профайлинг

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

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

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

View SyncTime (Отображение времени синхронизации)

При проигрывании с фиксированной частотой кадров или при включенной вертикальной синхронизации, Unity записывает время ожидания как “Wait For Target FPS”. По умолчанию, это время не отображается в профайлере. Чтобы посмотреть, сколько времени тратится на ожидание, вы можете включить “View SyncTime”. Также это помогает измерить как много времени у вас есть в запасе до снижения частоты кадров.

Временная шкала профайлера

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

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

Временная шкала состоит из нескольких областей: CPU Usage, Rendering и Memory. Эти области можно как удалить с помощью нажатия на кнопку закрытия на панели, так и добавить обратно с помощью выпадающего меню Add Area на панели инструментов профайлера.

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

The Profiler Window
Область CPU Usage