Разработка
Что такое Perfetto в Android разработке
Perfetto — это современная система трассировки Android, предназначенная для глубокого анализа производительности приложений и системы.
Perfetto — это современный инструмент для анализа производительности Android-приложений и операционной системы. Он используется для записи и изучения трассировок работы приложения: рендеринга интерфейса, нагрузки на процессор, работы потоков, операций ввода-вывода и других системных событий.
Perfetto пришёл на смену устаревшему Systrace и сегодня считается основным инструментом performance-профилирования в Android. Его использует сама Android-платформа, Chrome и Android Studio.
Зачем нужен Perfetto
При разработке Android-приложений проблемы производительности не всегда можно обнаружить с помощью обычных логов. Пользователь может сталкиваться с лагами интерфейса, долгим запуском приложения или подвисаниями, но причина проблемы часто скрыта глубоко внутри системы.
Perfetto позволяет увидеть полную картину работы приложения во времени. Разработчик получает доступ к timeline, где отображаются системные процессы, потоки приложения, операции рендеринга, работа GPU и CPU. Благодаря этому можно точно определить, какая операция вызывает задержку или блокирует главный поток.
Perfetto собирает трейсы (traces) — подробные временные логи работы устройства и приложения:
- работа CPU
- рендеринг UI
- фризы и лаги
- запуск приложения
- работа потоков
- сбор мусора
- сетевой и дисковый I/O
- энергопотребление
- события из Jetpack Compose
- GPU и SurfaceFlinger
- custom events из вашего кода
Как работает Perfetto
Во время записи трассировки Perfetto собирает события из разных частей Android-системы и сохраняет их в специальный trace-файл. После этого файл открывается в интерфейсе анализа, где все события отображаются на временной шкале.
Разработчик может увидеть выполнение Main Thread, RenderThread, сетевых запросов, операций чтения и записи, Garbage Collector и других компонентов системы. Такой подход помогает анализировать производительность буквально по миллисекундам.
Например, приложение лагает при открытии экрана. С помощью Perfetto можно увидеть:
- Main thread заблокирован на 120ms
- идёт синхронный запрос к SQLite
- Compose/Recomposition занимает слишком много времени
- bitmap decoding выполняется в потоке UI
Perfetto в Android Studio
Многие Android-разработчики уже используют Perfetto, даже не замечая этого. Когда в Android Studio открывается раздел System Trace внутри Android Profiler, под капотом работает именно Perfetto.
Инструмент записывает системную трассировку устройства и показывает подробный timeline выполнения операций. Это особенно полезно при анализе медленного интерфейса, dropped frames и нестабильного FPS.
Perfetto и Jetpack Compose
С распространением Jetpack Compose значение Perfetto стало ещё выше. Compose активно использует recomposition и асинхронные механизмы обновления интерфейса, поэтому искать причины лагов стало сложнее.
Perfetto помогает увидеть, сколько времени занимает recomposition, какие composable-функции вызываются слишком часто и где главный поток блокируется тяжёлыми вычислениями. Это делает инструмент одним из главных способов оптимизации Compose-приложений.
Custom tracing
Perfetto поддерживает пользовательские события трассировки. Разработчик может самостоятельно отмечать важные участки кода, чтобы позже видеть их на timeline.
Trace.beginSection("LoadFeed")
loadFeed()
Trace.endSection()
После записи trace такие секции отображаются внутри интерфейса Perfetto и позволяют быстрее находить проблемные операции.
Анализ trace-файлов
Одной из самых мощных возможностей Perfetto считается поддержка SQL-запросов к trace-файлам. Это позволяет автоматически искать длинные frame’ы, блокировки потоков и операции, выполняющиеся слишком долго.
Такой подход особенно полезен в performance-тестировании и автоматическом анализе производительности приложения.
Где используется Perfetto
Perfetto применяется для анализа startup time, поиска ANR, исследования UI-лагов, оптимизации FPS и профилирования сложных Android-приложений. Инструмент активно развивается Google и постепенно становится стандартом performance-debugging в Android-разработке.
Заключение
Perfetto — это современная система трассировки Android, предназначенная для глубокого анализа производительности приложений и системы. Инструмент помогает находить причины лагов, подвисаний и проблем рендеринга, а также оптимизировать работу интерфейса и фоновых операций.
Сегодня Perfetto считается одним из ключевых инструментов Android-разработчика, особенно при работе со сложными UI, асинхронной архитектурой и Jetpack Compose.
Полезные ссылки
- Perfetto Docs
- Android Performance Tracing Guide
- Perfetto UI
- Наиболее распространенные узкие места в производительности Android-приложений
- Perfetto в Android-разработке: когда профайлера уже недостаточно
- Поиск регрессий в Compose
- Производительность мобильных приложений, ориентированная на пользователей
-
Кроссплатформенная разработка4 недели назадFlutter после увольнений: вот честная оценка, которую никто не хочет давать
-
Программирование4 недели назадПрактики Swift, которые помогут вам выглядеть Senior разработчиком
-
Новости2 недели назадВидео и подкасты о мобильной разработке 2026.20
-
Видео и подкасты для разработчиков2 недели назадОт личной продуктивности к командной: сила шаблонизации в IDE
