Perfetto - 시스템 프로파일링, 앱 트레이싱 및 트레이스 분석 도구
(github.com/google)- Google이 주도해 차세대 시스템 트레이싱 스택을 목표로 설계·개발한 오픈소스 플랫폼
- 복잡한 시스템의 실행 흐름을 트레이싱 기반으로 관측하여 성능·기능 문제의 원인을 분석
- Android 운영체제와 Chromium 브라우저의 기본 트레이싱 시스템으로 채택된 프로덕션급 안정성과 성능
- 고성능 트레이싱 데몬을 통해 여러 프로세스·스레드의 이벤트를 하나의 통합 트레이스로 수집
- 저오버헤드 C++17 SDK를 제공해 사용자 공간 애플리케이션의 타이밍·상태 변화를 정밀하게 계측
- OS 수준 프로브를 통해 Android·Linux의 스케줄링, CPU 주파수, 메모리, 콜스택 등 시스템 전반의 컨텍스트 수집
-
브라우저 기반 UI로 대용량 트레이스를 타임라인 중심으로 시각화하고 인터랙티브하게 탐색
- 별도 설치 없이 주요 브라우저에서 실행 가능하며, 다양한 외부 트레이스 포맷도 열람 지원
- SQL 기반 분석 엔진을 내장해 트레이스를 데이터처럼 질의하고 맞춤형 메트릭을 추출 가능
- 공식 문서는 perfetto.dev에서 제공되며, 입문자부터 숙련자까지 단계별로 가이드 구성
- Google 오픈소스 커뮤니티 가이드라인을 준수하는 개방형 프로젝트
Perfetto를 사용하는 이유
- Android 앱·플랫폼 개발자는 앱 시작 지연, 프레임 드롭, ANR 등 성능 문제의 근본 원인을 구조적으로 분석 가능
- C/C++ 개발자는 Tracing SDK를 활용해 애플리케이션 실행 경로를 계측하고 병목 구간을 정밀하게 식별
-
Linux 커널·시스템 개발자는
ftrace기반 커널 이벤트를 시각화하여 스케줄링, 시스템콜, 인터럽트 동작을 분석 -
Chromium 개발자는
chrome://tracing의 백엔드로 Perfetto를 사용해 브라우저·V8·Blink 내부 동작을 디버깅 - 성능 엔지니어 및 SRE는 Linux perf, macOS Instruments, Chrome JSON trace 등 다양한 포맷을 SQL로 통합 분석 가능
얼마 전에 올라온 Meta, Valve의 Steam Deck용으로 설계된 Linux 스케줄러를 대규모 서버에 | GeekNews 글에서도 perfetto를 사용한 프로파일링 자료를 보여줍니다.