Выберите правильный метод профилирования

Сбор профилей возможен двумя основными способами: вручную и с помощью API ProfilingManager .

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

В следующей таблице показано, чем отличаются эти два метода записи профилей:

Менеджер профилирования Ручной сбор профилей
Управление временем профиля Более Меньше
Источник профиля Локальные устройства и публичные пользователи Только для локального устройства
Вывод профиля Засекречено Не отредактировано
Профилирование на основе событий Да Нет
Возможность настройки профиля Меньше Более
Масштабируемость Высокий Низкий

В следующих разделах кратко описаны различия между методами записи профиля.

Управление временем профиля

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

Источник профиля

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

Вывод профиля

ProfilingManager и ручной сбор данных создают различные типы профилированных результатов:

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

  • Ручной сбор профилей создает неотредактированные трассировки. При ручной записи системной трассировки выходные данные могут включать все процессы, запущенные в системе. Хотя эти неотредактированные трассировки предоставляют более полные данные для отладки, доступ к ним возможен только локально из-за соображений конфиденциальности.

Профилирование на основе событий

ProfilingManager также может собирать профили при возникновении определенных событий, таких как ошибка «Приложение не отвечает» (ANR) или запуск приложения. ProfilingManager будет управлять запуском и остановкой профилей для сбора данных на основе событий.

Возможность настройки профиля

Ручное профилирование обеспечивает наибольшие возможности настройки, в то время как ProfilingManager предлагает меньше вариантов настройки.

Масштабируемость

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