- Google が主導して次世代システムトレーシングスタックを目標に設計・開発したオープンソースプラットフォーム
- 複雑なシステムの実行フローをトレーシングベースで観測し、性能・機能問題の原因を分析
- Android オペレーティングシステムとChromium ブラウザの標準トレーシングシステムとして採用された本番運用レベルの安定性と性能
- 高性能トレーシングデーモンにより、複数のプロセス・スレッドのイベントを 1 つの統合トレースとして収集
- 低オーバーヘッド 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 で統合分析可能
2件のコメント
少し前に掲載された Meta、Valve の Steam Deck 向けに設計された Linux スケジューラを大規模サーバーに | GeekNews の記事でも、perfetto を使ったプロファイリング資料が紹介されています。
ほかの記事でよく見かけるのですが、GeekNewsではきちんと紹介していないようだったので、今さらですが投稿してみました ;)
私が最も好きなトレースツール集: eBPF, QEMU, Perfetto