- Nền tảng mã nguồn mở do Google dẫn dắt thiết kế và phát triển với mục tiêu trở thành stack truy vết hệ thống thế hệ mới
- Quan sát dựa trên tracing đối với luồng thực thi của các hệ thống phức tạp để phân tích nguyên nhân của các vấn đề về hiệu năng và chức năng
- Độ ổn định và hiệu năng cấp production khi được chọn làm hệ thống tracing mặc định cho hệ điều hành Android và trình duyệt Chromium
- Thu thập sự kiện từ nhiều process và thread vào một trace hợp nhất thông qua tracing daemon hiệu năng cao
- Cung cấp SDK C++17 overhead thấp để đo đạc chính xác thời gian và thay đổi trạng thái của các ứng dụng user space
- Thu thập ngữ cảnh trên toàn hệ thống như scheduling, tần số CPU, bộ nhớ, call stack... của Android·Linux thông qua probe ở cấp độ OS
- UI dựa trên trình duyệt giúp trực quan hóa trace dung lượng lớn theo dòng thời gian và khám phá tương tác
- Có thể chạy trên các trình duyệt phổ biến mà không cần cài đặt riêng, đồng thời hỗ trợ xem nhiều định dạng trace bên ngoài
- Tích hợp engine phân tích dựa trên SQL để truy vấn trace như dữ liệu và trích xuất metric tùy chỉnh
- Tài liệu chính thức được cung cấp tại perfetto.dev, với hướng dẫn theo từng cấp độ từ người mới bắt đầu đến người dùng giàu kinh nghiệm
- Dự án mở tuân thủ Google Open Source Community Guidelines
Vì sao nên dùng Perfetto
- Nhà phát triển ứng dụng và nền tảng Android có thể phân tích một cách có cấu trúc nguyên nhân gốc rễ của các vấn đề hiệu năng như chậm khởi động ứng dụng, rớt frame, ANR
- Lập trình viên C/C++ có thể dùng Tracing SDK để đo đạc đường đi thực thi của ứng dụng và xác định chính xác các điểm nghẽn
- Nhà phát triển kernel Linux và hệ thống có thể trực quan hóa các sự kiện kernel dựa trên
ftrace để phân tích scheduling, system call và hoạt động interrupt
- Nhà phát triển Chromium dùng Perfetto làm backend của
chrome://tracing để debug hoạt động nội bộ của trình duyệt, V8 và Blink
- Kỹ sư hiệu năng và SRE có thể phân tích hợp nhất bằng SQL nhiều định dạng khác nhau như Linux perf, macOS Instruments, Chrome JSON trace
2 bình luận
Trong bài viết Meta, Linux scheduler được thiết kế cho Steam Deck của Valve trên các máy chủ quy mô lớn | GeekNews được đăng cách đây không lâu cũng có giới thiệu tài liệu profiling sử dụng perfetto.
Thỉnh thoảng mình thấy công cụ này xuất hiện khá nhiều trong các bài viết khác, nhưng có vẻ trên GeekNews vẫn chưa được giới thiệu tử tế nên mình đăng lên muộn vậy ;)
Bộ công cụ truy vết tôi thích nhất: eBPF, QEMU, Perfetto