Собирать профили можно двумя основными способами: вручную и с помощью API ProfilingManager
.
- Ручной сбор профилей подразумевает ручной запуск Perfetto на локальном устройстве для записи профилей. Это можно сделать с помощью команд, описанных в разделе «Запись системных трассировок с помощью Perfetto» , или с помощью плитки быстрых настроек, как описано в разделе «Запись с помощью плитки быстрых настроек» .
-
ProfilingManager
позволяет приложениям собирать профили в процессе производства.
Мы рекомендуем использовать ProfilingManager
для сбора и анализа данных от большого количества пользователей или для отладки редких проблем. Однако для проблем, которые легче воспроизвести, ручное профилирование может быть более предпочтительным вариантом.
В следующей таблице показано, чем отличаются эти два метода записи профилей:
Менеджер профилирования | Ручной сбор профилей | |
---|---|---|
Управление синхронизацией профиля | Более | Меньше |
Источник профиля | Локальное устройство и публичные пользователи | Только локальное устройство |
Вывод профиля | Отредактировано | Неотредактировано |
Профилирование на основе событий | Да | Нет |
Возможность настройки профиля | Меньше | Более |
Масштабируемость | Высокий | Низкий |
В следующих разделах кратко описываются различия между методами записи профилей.
Управление синхронизацией профиля
API ProfilingManager
обеспечивает больший контроль над запуском и остановкой профиля приложения по сравнению с ручным профилированием, при котором инициализация временного профиля может быть затруднена. ProfilingManager
также упрощает профилирование непредвиденного поведения, поскольку позволяет собирать профиль, даже если поведение невозможно воспроизвести локально.
Источник профиля
С помощью ProfilingManager
вы можете собирать данные у пользователей, чтобы находить и устранять проблемы с производительностью. В отличие от этого, ручное профилирование позволяет воспроизвести проблемы только на вашем устройстве.
Вывод профиля
ProfilingManager
и ручной сбор данных создают различные типы выходных данных профиля:
ProfilingManager
создаёт отредактированные трассировки. Отредактированные трассировки содержат информацию о процессе вашего приложения, но скрывают данные от других приложений в системе. ПосколькуProfilingManager
собирает и редактирует данные перед их возвратом, вы можете собирать трассировки от публичных пользователей, защищая их конфиденциальность, не отображая данные от других приложений.Ручной сбор профилей создаёт неотредактированные трассировки. При ручной записи трассировки системы выходные данные могут включать все процессы, запущенные в системе. Хотя эти неотредактированные трассировки предоставляют более полные данные для отладки, доступ к ним возможен только локально из соображений конфиденциальности.
Профилирование на основе событий
ProfilingManager
также может собирать профили при возникновении определённых событий, таких как ошибка «Приложение не отвечает» (ANR) или запуск приложения. ProfilingManager
управляет запуском и остановкой профилей для сбора данных на основе событий.
Возможность настройки профиля
Ручное профилирование обеспечивает максимальную настройку, тогда как ProfilingManager
предлагает меньше возможностей настройки.
Масштабируемость
ProfilingManager
— лучший способ масштабировать трассировку, поскольку это единственный инструмент, позволяющий разработчикам приложений записывать профили публичных пользователей. С помощью ProfilingManager
можно организовать масштабный сбор и анализ трассировки. Ручное профилирование ограничено локальным использованием.