Defold включает набор инструментов профилирования, интегрированных с движком и конвейером сборки. Они предназначены для поиска проблем с производительностью и использованием памяти. Встроенные профилировщики доступны только в отладочных сборках.
Отладочные сборки включают визуальный профилировщик среды выполнения, который оперативно показывает информацию, отображаемую поверх работающего приложения:
function on_reload(self)
-- Toggle the visual profiler on hot reload.
profiler.enable_ui(true)
end
Визуальный профилировщик предоставляет ряд различных функций, которые можно использовать для изменения способа отображения данных:
profiler.set_ui_mode()
profiler.set_ui_view_mode()
profiler.view_recorded_frame()
Обратитесь к справочнику по API профилировщика для получения дополнительной информации о функциях профилировщика.
При запуске отладочной сборки игры интерактивный веб-профилировщик может быть доступен через браузер. Это позволяет вам замерить вашу игру на серии кадров, а затем детально анализировать каждый кадр.
Чтобы получить доступ к профилировщику:
http://<device IP>:8002
, где <device IP>
- это IP-адрес устройства. Вы можете найти IP-адреса ваших целевых устройств в меню Project ▸ Target. Если вы запускаете игру на настольном компьютере, http://localhost:8002 ведет на профилировщик.Вверху, рядом с кнопкой Capture, есть переключатели для переключения между CPU/Frame profiler и Resource Profiler.
CPU profiler разделен на 4 раздела, каждый из которых дает разные представления о текущих данных выборки. Чтобы обновить образцы данных, нажмите кнопку Capture вверху.
Под обзором фреймов находится подробное представление данных фрейма.
Щелкните полосу фрейма в обзоре, чтобы отобразить данные для этого конкретного фрейма в окне просмотра данных.
Установка флажка, связанного с точкой выборки или счетчиком, добавляет эти данные на график ниже.
Профилировщик ресурсов поделен на 2 раздела, один из которых показывает иерархическое представление коллекций, игровых объектов и компонентов, инстанцированных в текущий момент в вашей игре, а другой показывает все загруженные в данный момент ресурсы.
При бандлинге вашей игры есть возможность создать отчет о сборке. Это очень полезно, чтобы получить представление о размере всех ассетов, входящих в бандл вашей игры. Просто установите флажок Generate build report при бандлинге игры.
Сборщик создаст файл с именем «report.html» рядом с бандлом игры. Откройте файл в веб-браузере, чтобы изучить отчет:
Раздел Overview дает общую визуальную разбивку размера проекта в зависимости от типа ресурса.
Раздел Resources показывает подробный список ресурсов, которые вы можете отсортировать по размеру, степени сжатия, шифрованию, типу и имени каталога. Используйте поле «search» для фильтрации отображаемых записей ресурсов.
Раздел Structure показывает размеры в зависимости от того, как ресурсы организованы в файловой структуре проекта. Записи имеют цветовую кодировку от зеленого (легкий) до синего (тяжелый) в зависимости от относительного размера файла и содержимого каталога.
В дополнение к встроенным инструментам доступен широкий спектр бесплатных высококачественных инструментов трассировки и профилирования. Ниже приведена их подборка:
https://github.com/jgrahamc/ProFi
Обратите внимание, что профилировщики на чистом Lua добавляют довольно много накладных расходов с каждым устанавливаемым хуком. По этой причине вам следует немного опасаться временных профилей, которые вы получаете такими инструментами. Однако профили подсчета (Counting profiles) достаточно точны.
Этот инструмент позволяет вам анализировать работающее Defold приложение и увидеть, как оно использует OpenGL. Он позволяет вам отслеживать вызовы функций OpenGL, устанавливать точки останова для функций OpenGL, исследовать ресурсы приложения (текстуры, программы, шейдеры и т. д.), просматривать содержимое буфера и проверять другие аспекты состояния OpenGL.
Набор инструментов профилирования, который в реальном времени собирает данные о процессоре, памяти и сетевой активности вашей игры. Вы можете выполнять отслеживание выполнения кода методов на основе семплирования, захватывать heap дампы, просматривать выделение памяти и изучать детали файлов, передаваемых по сети. Для использования этого инструмента необходимо установить android:debuggable="true"
в файле “AndroidManifest.xml”.
Примечание. Начиная с Android Studio 4.1, также можно запускать инструменты профилирования без запуска самой Android Studio.
Это набор инструментов, который позволяет вам проверять, настраивать и воспроизводить вызовы от приложения к графическому драйверу. Для использования этого инструмента необходимо установить android:debuggable="true"
в “AndroidManifest.xml”.
Did you spot an error or do you have a suggestion? Please let us know on GitHub!
GITHUB