Разработка
Разработка
Выберите платформу

Мониторинг производительности с помощью инструмента "Метрики OVR"

Обновлено: 5 дек 2025 г.
Инструмент "Метрики OVR" — это решение для мониторинга производительности гарнитур Meta Quest, которое предлагает множество разных метрик производительности, включая частоту кадров, тепловыделение, регулировку ГП и ЦП, а также количество разрывов изображения и устаревших кадров в секунду. В дополнение к встроенным системным метрикам разработчики приложений могут настроить пользовательские метрики, чтобы с их помощью отслеживать производительность или получать информацию для отладки конкретного приложения. Метрики можно визуализировать в режиме реального времени с помощью оверлея на экране или автоматически добавлять в отчеты CSV для последующего анализа. Инструмент "Метрики OVR" также предлагает функцию удаленного управления устройством и доступен в Магазине Meta Horizon.

Обзор

Инструмент "Метрики OVR" — это инструмент Meta Quest, который предоставляет информацию о производительности запущенного приложения. Большая часть этой информации аналогично предоставляемой журналами Logcat VrApi. Инструмент "Метрики OVR" предоставляет доступ к этой информации из приложения на устройстве, а не из командной строки. Информацию об использовании Logcat см. в документации по Logcat.
Инструмент "Метрики OVR" имеет два режима работы. В режиме отчета инструмент записывает отчет о производительности сеанса VR, который можно прочитать после его завершения. Данные отчета можно легко экспортировать в виде графиков в форматах CSV и PNG. В режиме Performance HUD Mode (Индикаторная панель производительности) инструмент накладывает индикаторную панель поверх работающих приложений, что предоставляет графики и информацию о производительности в режиме реального времени. Информацию, отображаемую на индикаторной панели, можно настроить.
Разработчики могут определять и получать пользовательские метрики непосредственно из своих приложений, чтобы целенаправленно собирать статистику для отладки и оптимизации в процессе разработки. Эти метрики можно отслеживать в режиме реального времени в оверлее на индикаторной панели или записывать в файлы CSV для последующего анализа. Отслеживая индикаторы производительности конкретного приложения вместе со стандартными метриками системы, разработчики получают более глубокое представление о поведении приложения, что позволяет быстрее выявлять и устранять проблемы.
Инструмент "Метрики OVR" предоставляет дополнительную статистику ГП, для получения которой необходимо включить инструмент профилирования ovrgpuprofiler из подключенной оболочки. Информации о включении этого инструмента см. в документации по ovrgpuprofiler.
Информацию обо всех метриках, которые может отслеживать инструмент "Метрики OVR", см. в руководстве по инструменту "Метрики OVR" и статистике VrApi.

Сбор данных о производительности с помощью инструмента "Метрики OVR"

В следующих разделах описано, как установить инструмент "Метрики OVR" и использовать его для сбора информации о производительности приложения в режиме отчета и режиме индикаторной панели производительности.

Установка

Установите последнюю версию из Магазина Meta Horizon. Либо выполните поиск по ключевым словам ovr metrics tool и скачайте приложение из Магазина приложений на гарнитуре.

Использование инструмента "Метрики OVR"

Приложение OVR Metrics Tool можно запустить из приложения Library (Библиотека) на гарнитуре. Кроме того, его можно запустить, подключив гарнитуру к компьютеру через ADB и выполнив следующую команду:
adb shell am start omms://app
Когда OVR Metrics Tool запускается на гарнитуре, главный экран выглядит следующим образом:
OVR Metrics Tool main screen
На главном экране вы можете включать и настраивать функции инструмента.

Режим отчетов

В режиме отчетов записываются данные о производительности сеанса VR. Данные отчетов можно извлекать из гарнитуры или просматривать непосредственно в ней.
Чтобы включить режим отчетов, включите переключатель Record all captured metrics to csv files (Запись всех захваченных метрик в csv-файлы). Кроме того, режим отчетов можно включить, выполнив следующую команду ADB:
adb shell am broadcast -n com.oculus.ovrmonitormetricsservice/.SettingsBroadcastReceiver -a com.oculus.ovrmonitormetricsservice.ENABLE_CSV
После включения нужно вручную выбрать получаемые метрики на вкладке Stats или одной из кнопок предустановленных вариантов.
  • Basic (Базовый) включает в себя следующие метрики:
    • уровень заряда батареи;
    • Уровень ЦП
    • Уровень ГП
    • среднее количество кадров в секунду;
    • количество устаревших кадров;
    • загрузка ЦП;
    • загрузка ГП;
    • время работы ГП для приложения.
  • Advanced (Расширенный) включает в себя все метрики Basic, а также следующие:
    • уровень фовеации;
    • количество досрочных кадров;
    • ширина глазного буфера;
    • высота глазного буфера;
    • время работы ГП для TimeWarp;
    • VrShell + граничное время ГП;
    • количество кадров в секунду для SpaceWarp;
    • Макс. количество последовательных устаревших кадров
Инструмент "Метрики OVR" позволяет добавить на индикаторную панель самые разные метрики производительности. Пользователи могут вручную выбирать, какие метрики будут отображаться в оверлее на индикаторной панели, используя вкладку Stats (Статистика) для чтения текста в режиме реального времени и вкладку Graphs (Графики) для визуализации краткосрочных исторических тенденций для этих метрик. Это позволяет настроить индикаторную панель так, чтобы она отображала те данные о производительности, которые наиболее важны для ваших приложений или в аналитике. Для доступа к определенным видам расширенной статистики ГП необходимо сначала включить инструмент профилирования ovrgpuprofiler из подключенной оболочки. Подробнее см. в статье Профилирование ГП с помощью ovrgpuprofiler.
Эти статистические данные включают в себя:
  • граничное время ГП;
  • использование ЦП по ядрам 0–7;
  • VSS, RSS и Dalvik PSS приложения
Метрики ovrgpuprofiler
  • Среднее количество вершин на кадр
  • Средний процент заполнения на глаз
  • Среднее количество инструкций на фрагмент
  • Среднее количество инструкций на вершину
  • Среднее количество текстур на фрагмент
  • Процент времени, затраченного на шейдинг фрагментов
  • Процент времени, затраченного на шейдинг вершин
  • Процент остановок выборки вершин
  • Процент остановок выборки текстур
  • Процент пропусков текстур L1
  • Процент пропусков текстур L2
  • Процент выборки текстур с использованием фильтрации ближайшего соседа
  • Процент выборки текстур с использованием линейной фильтрации
  • Процент выборки текстур с использованием анизотропной фильтрации
Подробнее об этих точках данных см. в разделе Статистика, получаемая с помощью ovrgpuprofiler.
Выбрав метрики, запустите приложение и проведите сеанс сбора данных. Обратите внимание: данные регистрируются для каждого запуска приложения. После сеанса откройте OVR Metrics Tool, раскройте меню в правом верхнем углу и выберите View Recorded Sessions (Посмотреть записанные сеансы). Выберите запись, соответствующую вашему сеансу. Вы увидите серию графиков, описывающих производительность. Если устройство подключено к компьютеру, записанные сеансы доступны в виде CSV-файла в папке /sdcard/Android/data/com.oculus.ovrmonitormetricsservice/files/CapturedMetrics/. Метрики также можно получать через диспетчер файлов Центра разработки Meta Quest.

Режим индикаторной панели производительности

В режиме Performance HUD (Индикаторная панель производительности) поверх работающих приложений отображается график в режиме реального времени, на котором представляются выбранные метрики. Чтобы включить режим индикаторной панели производительности, включите на главном экране параметр Enable Persistent Overlay (may require reboot) (Включить постоянный оверлей (может потребоваться перезагрузка)). Вы также можете включить индикаторную панель, выполнив следующую команду ADB:
adb shell am broadcast -n com.oculus.ovrmonitormetricsservice/.SettingsBroadcastReceiver -a com.oculus.ovrmonitormetricsservice.ENABLE_OVERLAY
После включения индикаторной панели может потребоваться перезагрузка гарнитуры, чтобы она появилась. В зависимости от выбранной метрики индикаторная панель выглядит примерно так:
Performance HUD over app
По умолчанию на индикаторной панели не отображается никаких метрик, хотя график FPS присутствует. Вам нужно выбрать отображаемые метрики на вкладке Stats (Статистика) вручную или кнопками Basic (Основные) и Advanced (Расширенные), описанными в разделе Режим отчетов. Вкладка Graphs (Графики) используется для настройки графиков, которые будут отображаться на оверлее.
Под кнопками находятся дополнительные параметры оверлея. Статистику и метрики на графике можно включать и выключать (по умолчанию они включены). Параметр Render Overlay on GPU (Рендеринг оверлея на ГП) включает аппаратный рендеринг оверлея и включен по умолчанию.
Параметр Lock Overlay to Head (Блокировка наложения на голове) включен по умолчанию. Отключение этого параметра позволяет разблокировать индикаторную панель и расположить ее в пространстве, однако такая работа может быть непредсказуемой и не рекомендуется. Под этим переключателем находятся параметры масштаба и положения индикаторной панели.
Параметр Screenshot on Dropped Frames (Скриншот при потере кадров) находится внизу главного экрана. Если он включен и количество потерянных кадров превысит установленный лимит за указанное время, будет сделан скриншот.
Многими параметрами индикаторной панели можно управлять из командной строки:

Включение оверлея

adb shell am broadcast -n com.oculus.ovrmonitormetricsservice/.SettingsBroadcastReceiver -a com.oculus.ovrmonitormetricsservice.ENABLE_OVERLAY
Эта команда может принимать следующие необязательные параметры:
--eb headlocked (true|false) // whether the overlay should be locked to view
--ef pitch (-90.0 to 90.0) // the pitch of the overlay (negative is down)
--ef yaw (-180.0 to 180.0) // the yaw of the overlay (negative is left)
--ei scale (1, 2, or 3) // the scale of the overlay
--ef distance (0.1+) // the distance the overlay appears (headlocked only)

Отключение оверлея

adb shell am broadcast -n com.oculus.ovrmonitormetricsservice/.SettingsBroadcastReceiver -a com.oculus.ovrmonitormetricsservice.DISABLE_OVERLAY

Включение и отключение всех графиков или статистических данных

adb shell am broadcast -n com.oculus.ovrmonitormetricsservice/.SettingsBroadcastReceiver -a com.oculus.ovrmonitormetricsservice.ENABLE_GRAPH // enable all graphs
adb shell am broadcast -n com.oculus.ovrmonitormetricsservice/.SettingsBroadcastReceiver -a com.oculus.ovrmonitormetricsservice.ENABLE_STATS // enable all stats
adb shell am broadcast -n com.oculus.ovrmonitormetricsservice/.SettingsBroadcastReceiver -a com.oculus.ovrmonitormetricsservice.DISABLE_GRAPH // disable all graphs
adb shell am broadcast -n com.oculus.ovrmonitormetricsservice/.SettingsBroadcastReceiver -a com.oculus.ovrmonitormetricsservice.DISABLE_STATS // disable all stats

Включение и отключение отдельных графиков или статистических данных

adb shell am broadcast -n com.oculus.ovrmonitormetricsservice/.SettingsBroadcastReceiver -a com.oculus.ovrmonitormetricsservice.ENABLE_GRAPH --es stat <stat> // add graph for <stat> to overlay
adb shell am broadcast -n com.oculus.ovrmonitormetricsservice/.SettingsBroadcastReceiver -a com.oculus.ovrmonitormetricsservice.ENABLE_STAT --es stat <stat> // add <stat> to overlay
adb shell am broadcast -n com.oculus.ovrmonitormetricsservice/.SettingsBroadcastReceiver -a com.oculus.ovrmonitormetricsservice.DISABLE_GRAPH --es stat <stat> // disable graph for <stat>
adb shell am broadcast -n com.oculus.ovrmonitormetricsservice/.SettingsBroadcastReceiver -a com.oculus.ovrmonitormetricsservice.DISABLE_STATS --es stat <stat> // remove <stat> from overlay
Ниже перечислены допустимые значения <stat>. Статистические данные, которые они представляют, описаны в Руководстве по инструменту "Метрики OVR" и статистике VrApi.
"available_memory_MB",
"app_pss_MB",
"battery_level_percentage",
"battery_temperature_celcius",
"battery_current_now_milliamps",
"sensor_temperature_celcius",
"power_current",
"power_level_state",
"power_voltage",
"power_wattage",
"cpu_level",
"gpu_level",
"cpu_frequency_MHz",
"gpu_frequency_MHz",
"mem_frequency_MHz",
"minimum_vsyncs",
"extra_latency_mode",
"average_frame_rate",
"display_refresh_rate",
"average_prediction_milliseconds",
"screen_tear_count",
"early_frame_count",
"stale_frame_count",
"maximum_rotational_speed_degrees_per_second",
"foveation_level",
"eye_buffer_width",
"eye_buffer_height",
"app_gpu_time_microseconds",
"timewarp_gpu_time_microseconds",
"guardian_gpu_time_microseconds",
"cpu_utilization_percentage",
"cpu_utilization_percentage_core0",
"cpu_utilization_percentage_core1",
"cpu_utilization_percentage_core2",
"cpu_utilization_percentage_core3",
"cpu_utilization_percentage_core4",
"cpu_utilization_percentage_core5",
"cpu_utilization_percentage_core6",
"cpu_utilization_percentage_core7",
"gpu_utilization_percentage",
"spacewarp_motion_vector_type",
"spacewarped_frames_per_second",
"app_vss_MB",
"app_rss_MB",
"app_dalvik_pss_MB",
"app_private_dirty_MB",
"app_private_clean_MB",
"app_uss_MB",
"stale_frames_consecutive",
"avg_vertices_per_frame",
"avg_fill_percentage",
"avg_inst_per_frag",
"avg_inst_per_vert",
"avg_textures_per_frag",
"percent_time_shading_frags",
"percent_time_shading_verts",
"percent_time_compute",
"percent_vertex_fetch_stall",
"percent_texture_fetch_stall",
"percent_texture_l1_miss",
"percent_texture_l2_miss",
"percent_texture_nearest_filtered",
"percent_texture_linear_filtered",
"percent_texture_anisotropic_filtered",
"vrshell_average_frame_rate",
"vrshell_gpu_time_microseconds",
"vrshell_and_guardian_gpu_time_microseconds"

Дополнительные параметры конфигурации через adb

adb shell am broadcast -n com.oculus.ovrmonitormetricsservice/.SettingsBroadcastReceiver -a com.oculus.ovrmonitormetricsservice.ENABLE_CSV // records all metrics to CSV files in /sdcard/Android/data/com.oculus.ovrmonitormetricsservice/files/CapturedMetrics/
adb shell am broadcast -n com.oculus.ovrmonitormetricsservice/.SettingsBroadcastReceiver -a com.oculus.ovrmonitormetricsservice.DISABLE_CSV // disables writing metrics to disk
adb shell am broadcast -n com.oculus.ovrmonitormetricsservice/.SettingsBroadcastReceiver -a com.oculus.ovrmonitormetricsservice.ENABLE_DROPPED_FRAME_SCREENSHOT --ei count <count> --ei time <time> // enables functionality that will take a screenshot if <count> frames are missed within a window of <time>
adb shell am broadcast -n com.oculus.ovrmonitormetricsservice/.SettingsBroadcastReceiver -a com.oculus.ovrmonitormetricsservice.DISABLE_DROPPED_FRAME_SCREENSHOT // disables automatic screenshot functionality
adb shell am broadcast -n com.oculus.ovrmonitormetricsservice/.SettingsBroadcastReceiver -a com.oculus.ovrmonitormetricsservice.LOG_STATE // prints a json blob to logcat with the current configuration state of OVR Metrics Tool, useful for automated tooling

Набор инструментов инструмента "Метрики OVR" для Unity

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

Скачивание набора инструментов

  • Скачать пакет набора инструментов можно на этой странице.
  • Извлеките файл Unity/OVRMetricsToolSDK.unitypackage из скачанного пакета.
  • В Unity выберите Assets (Объекты) > Import Package (Импорт пакета) > Custom Package (Пользовательский пакет) и импортируйте пакет.

Доступ к данным метрик

Доступ к данным метрик можно получить в виде структуры OVRMetricsToolSDK.MetricsSnapshot, которая содержит временную метку и поля для всех значений <stat>, перечисленных выше.
В следующем фрагменте показан один из возможных способов отображения данных метрик OVR в приложении Unity:
    void Update()
    {
        var metrics = OVRMetricsToolSDK.Instance.GetLatestMetricsSnapshot();
        GetComponent<TMP_Text>().text = metrics?.cpu_utilization_percentage.ToString() ?? "";
    }

Добавление строки отладки CSV

AppendCSVDebugString позволяет добавить пользовательские данные разработчика в файл CSV, который создается при выборе варианта Record To CSV (Запись в CSV). Отладочные данные будут помещены в последний столбец CSV. Если данные вводятся с частотой выше 1 Гц, они будут помещены в новую строку CSV с пустыми столбцами метрик. Их предполагается использовать для обозначения переходов между сценами, чтобы облегчить анализ CSV.
Чтобы получить доступ к этому методу, выполните следующий вызов:
OVRMetricsToolSDK.Instance.AppendCsvDebugString(debugString);

Настройка строки отладки оверлея

SetOverlayDebugString позволяет отображать пользовательскую информацию на оверлее OVR Metrics Tool. Чтобы сделать эти данные видимыми, убедитесь, что параметр Show Debug Data (Показывать данные отладки) включен. Данные появятся в нижней части оверлея. Строка отладки оверлея может обновляться один раз за кадр и не сохраняется между кадрами. По умолчанию строка отладки оверлея имеет белый цвет. Чтобы изменить его, добавьте в строку теги <color=#{hex value}>...</color>.
Следующий метод задает эту строку в нативном Mobile SDK:
OVRMetricsToolSDK.Instance.SetOverlayDebugString(debugString);

Определение и отправка метрик приложения

Определите пользовательские метрики для отслеживания данных, специфичных для приложения, например здоровья игрока, количества врагов или любых игровых индикаторов производительности. Вызовите этот метод один раз во время инициализации, обычно в Start():
void Start()
{
    // Player Health Metric
    OVRMetricsToolSDK.Instance.DefineAppMetric(
        name: "player_health",
        displayName: "Player Health",
        group: "Player",
        rangeMin: 0,
        rangeMax: 100,
        graphMin: 0,
        graphMax: 100,
        redPercent: 0.2f,
        greenPercent: 0.7f,
        showGraph: true,
        showStat: true
    );

    // Active Enemies Metric
    OVRMetricsToolSDK.Instance.DefineAppMetric(
        name: "active_enemies",
        displayName: "Active Enemies",
        group: "Gameplay",
        rangeMin: 0,
        rangeMax: 50,
        graphMin: 0,
        graphMax: 50,
        redPercent: 0.8f,
        greenPercent: 0.5f,
        showGraph: true,
        showStat: true
    );
}
Параметры метрик:
  • name: уникальный идентификатор метрики
  • displayName: читаемое имя, отображаемое в OVR Metrics Tool
  • group: категория для организации метрик (например, "Игрок", "Игровой процесс")
  • rangeMin/rangeMax: допустимый диапазон значений для метрики
  • graphMin/graphMax: диапазон для отображения графика
  • redPercent: порог для красного индикатора предупреждения (0,0 до 1,0)
  • greenPercent: порог для зеленого индикатора (0,0 до 1,0)
  • showGraph: отображение метрики в виде графика
  • showStat: отображение метрики в виде текстовой статистики
После определения пользовательских метрик периодически обновляйте их (обычно в Update() или при изменении значений):
void Update()
{
    // Update metrics with current values
    OVRMetricsToolSDK.Instance.UpdateAppMetric("player_health", currentHealth);
    OVRMetricsToolSDK.Instance.UpdateAppMetric("active_enemies", enemyCount);
}
Рекомендация: не отправляйте метрики каждый кадр, если значения не изменились. Обновляйте только при необходимости, чтобы сократить излишнюю нагрузку.

Отчетность по основным метрикам

Встроенные метрики Unity можно автоматически отслеживать и визуализировать в инструменте "Метрики OVR" с помощью компонента Core Metrics Reporting. Эта функция обеспечивает мониторинг критически важных данных производительности Unity в режиме реального времени, включая использование памяти и статистику рендеринга, что упрощает выявление проблем с производительностью во время разработки.
Чтобы включить отчеты по основным метрикам в своем проекте Unity, выполните следующие действия:
  1. Выберите в иерархии сцены игровой объект Camera Rig.
  2. В Инспекторе нажмите Add Component (Добавить компонент) и найдите OVR Metrics Manager.
  3. После добавления в пользовательском интерфейсе компонента можно настроить, какие метрики нужно отслеживать:
    • Метрики памяти: отслеживание распределения памяти и паттернов использования памяти
    • Метрики рендеринга: отслеживание данных о производительности рендеринга
Для каждой категории метрик можно выбрать формат визуализации:
  • Статистика: отображение метрик в виде числовых текстовых значений в оверлеях.
  • Графики: визуализация метрик в виде графиков, отображаемых в режиме реального времени и демонстрирующих тенденции с течением времени.
OVR Metrics Manager component in Unity Editor
Эти метрики Unity легко интегрируются с оверлеем инструмента "Метрики OVR" и функциями записи в CSV-файлы, отображаясь вместе с данными производительности на уровне системы. Это унифицированное представление позволяет сопоставлять метрики Unity с метриками производительности устройства для комплексного анализа.
Core Metrics displayed in OVR Metrics Tool overlay

Статьи по теме

Логотип навигации
Русский
© 2026 Meta