This page has been translated automatically.
Видеоуроки
Interface
Essentials
Advanced
Полезные советы
Программирование на C#
Принципы работы
Свойства (properties)
Компонентная Система
Рендер
Физика
Редактор UnigineEditor
Обзор интерфейса
Работа с ассетами
Настройки и предпочтения
Работа с проектами
Настройка параметров узла
Setting Up Materials
Setting Up Properties
Освещение
Landscape Tool
Sandworm (Experimental)
Использование инструментов редактора для конкретных задач
Extending Editor Functionality
Встроенные объекты
Nodes
Objects
Effects
Decals
Light Sources
Geodetics
World Objects
Sound Objects
Pathfinding Objects
Players
Программирование
Основы
Настройка среды разработки
Примеры использования
UnigineScript
C++
C#
Унифицированный язык шейдеров UUSL
File Formats
Rebuilding the Engine Tools
GUI
Двойная точность координат
API
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
Rendering-Related Classes
Работа с контентом
Оптимизация контента
Материалы
Art Samples
Tutorials
Внимание! Эта версия документация УСТАРЕЛА, поскольку относится к более ранней версии SDK! Пожалуйста, переключитесь на самую актуальную документацию для последней версии SDK.
Внимание! Эта версия документации описывает устаревшую версию SDK, которая больше не поддерживается! Пожалуйста, обновитесь до последней версии SDK.

Инструмент Microprofile

UNIGINE поддерживает Microprofile, расширенный внешний встраиваемый профилировщик CPU / GPU с поддержкой покадровой проверки.

Инструмент Microprofile

Профилировщик имеет следующее:

  • Операции профилирования, выполняемые движком на CPU и GPU.
  • Профилирование потоков движка.
  • Профилирование до 1000 кадров.
  • Вывод данных о производительности на локальный веб-сервер или в файл HTML.

Запуск Microprofile#

Примечание
Инструмент Microprofile доступен только для Development сборок движка: он не будет компилироваться для сборок Debug и Release. Вы можете использовать консольную команду microprofile_info, чтобы проверить, скомпилирован ли Microprofile.

Данные о производительности, полученные Microprofile могут выводиться на локальный веб-сервер или в файл HTML.

Примечание
Microprofile показывает действительную информацию только после рендеринга первых 1000 кадров (например, при частоте кадров 60 кадров в секунду такое время "разогрева" составляет около 16 секунд).

Визуализация с использованием встроенного сервера#

Чтобы визуализировать данные о производительности с помощью локального веб-сервера, выполните следующие действия:

  1. В консоли установите количество кадров для профилирования с помощью консольной команды microprofile_webserver_frames . Вы можете пропустить этот шаг: по умолчанию будет профилировано 500 кадров.
  2. При необходимости отключите профилирование графического процессора .
  3. В строке меню UnigineEditor выберите Tools -> Microprofile.

Данные о производительности будут отображаться в вашем веб-браузере.

Примечание
Вы можете отображать только часть профилированных фреймов: в адресной строке веб-браузера добавьте /<number_of_frames> к текущему URL-адресу.

Например, если вы укажете localhost:1337/100, будут отображаться только первые 100 кадров.

Визуализация с использованием файлов#

Чтобы вывести данные о производительности в файлы HTML, выполните следующие действия:

  1. В консоли задайте количество кадров для профилирования с помощью консольной команды microprofile_dump_frames . Вы можете пропустить этот шаг: по умолчанию будет профилировано 1000 кадров.
  2. При необходимости отключите профилирование графического процессора .
  3. Запустите консольную команду microprofile_dump_html.

Данные производительности будут сохранены в указанном файле .html.

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

Примечание
Все доступные консольные команды можно найти в разделе Performance Profiling статьи о Консоли .

Данные о производительности#

Microprofile визуализирует подробные данные о производительности для каждого кадра операций, выполняемых движком на CPU и GPU (если включен ) и в потоках движка. В главном меню Microprofile вы можете изменить режим визуализации: нажмите Mode и выберите нужный. По умолчанию установлен режим Detailed.

Группы профилирования, отображаемые в режиме Detailed

В режиме Detailed каждая операция (функция) и поток отображаются в виде отдельной цветной области. Регионы являются иерархическими: функция, вызванная другой функцией, отображается под последней. Размер области определяется временем выполнения соответствующей операции.

На рисунке ниже функция Engine::do_render() вызывает функции RenderRenderer::renderWorld() и так далее:

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

Данные ЦП#

В группе данных производительности Main отображается стек вызовов операций (например, update, rendering и т. д.), выполняемых движком на ЦП.

Данные о производительности функции World Update

Данные GPU#

В группе данных о производительности GPU отображается стек вызовов операций, выполняемых движком на GPU. В дополнение к основным данным о производительности для каждой функции (например, рендеринга среды, рендеринга пост-материалов и т.д.) отображается количество вызовов DIP и визуализированных треугольников. Также может отображаться количество поверхностей, источников света, теней, отрендеренных этой функцией, количество используемых материалов и шейдеров; информация об узле или материале, для которого вызывается функция (идентификатор, имя и т.д.).

Данные о производительности отложенного рендеринга освещения

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

OpenGL или команды DirectX можно объединить в группы отладки графического процессора, которые создаются автоматически при определении области профилирования. Все графические ресурсы, загружаемые из внешних файлов, такие как текстуры, шейдеры, статические сетки или сетки со скинами, а также внутренние ресурсы движка имеют свои собственные имена отладки для упрощения идентификации. Эта информация может быть полезна при использовании отладчиков Graphics API, таких как NVIDIA Nsight или RenderDoc.

Пример данных отладки, просматриваемых в RenderDoc

Данные о потоках движка#

Данные о производительности потоков движка визуализируются в группах CPUThread, SoundThread, AsyncQueueThread, WorldSpawnMeshClutterThread, WorldSpawnGrassThread.

Данные о производительности в потоках симуляции физики

Видеоурок: Проверка производительности с помощью Microprofile#

Последнее обновление: 24.11.2020
Build: ()