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

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

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

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

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

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

Управление синхронизацией профиля

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

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

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

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

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

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

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

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

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

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

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

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

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