perfetto
là một công cụ cho phép bạn thu thập thông tin về hiệu suất của các thiết bị Android thông qua Cầu gỡ lỗi Android (ADB). Gọi công cụ perfetto
bằng lệnh adb shell perfetto ...
.
perfetto
sử dụng nhiều nguồn để thu thập dấu vết về hiệu suất của thiết bị, chẳng hạn như:
ftrace
để biết thông tin về kernelatrace
chú thích cho không gian người dùng trong các dịch vụ và ứng dụngheapprofd
để biết thông tin về mức sử dụng bộ nhớ gốc của các dịch vụ và ứng dụng
Trang này mô tả cách gọi perfetto
cũng như cách định cấu hình để tạo đầu ra mong muốn. Để biết thêm thông tin, hãy tham khảo tài liệu về perfetto
.
Cú pháp
Phần này mô tả cách dùng ADB để gọi perfetto
cho nhiều chế độ và tạo dấu vết.
Chọn nguồn dữ liệu
perfetto
bao gồm 2 chế độ xác định nguồn dữ liệu sau đây để ghi lại dấu vết của bạn:
- chế độ sáng: chỉ có thể chọn một nhóm nhỏ các nguồn dữ liệu, cụ thể là
atrace
vàftrace
. Tuy nhiên, chế độ này cung cấp giao diện tương tự nhưsystrace
. - chế độ thông thường: nhận cấu hình trong vùng đệm giao thức và cho phép bạn tận dụng nhiều hơn chức năng của
perfetto
bằng cách sử dụng các nguồn dữ liệu ngoàiatrace
vàftrace
.
Tuỳ chọn chung
Bảng sau đây liệt kê các tuỳ chọn có sẵn khi sử dụng perfetto
ở một trong 2 chế độ.
Tuỳ chọn | Nội dung mô tả |
---|---|
--background |
|
perfetto thoát ngay khỏi giao diện dòng lệnh và tiếp tục ghi lại dấu vết của bạn ở chế độ nền. |
--background-wait | -D
|
Giống như --background , nhưng chờ (tối đa 30 giây) để tất cả các nguồn dữ liệu bắt đầu trước khi thoát. Mã thoát sẽ bằng 0 nếu xác nhận thành công và khác 0 (lỗi hoặc hết thời gian chờ).
|
--alert-id
|
Mã của cảnh báo kích hoạt dấu vết này. |
--config-id
|
Mã của cấu hình kích hoạt. |
--config-uid
|
UID của ứng dụng đăng ký cấu hình. |
--subscription-id
|
Mã của gói thuê bao kích hoạt dấu vết này. |
--out OUT_FILE |
|
Chỉ định đường dẫn mong muốn đến tệp theo dõi đầu ra hoặc Lưu ý: Bạn phải chỉ định tên đường dẫn đầy đủ của tệp đầu ra. Thông thường, các tệp phải được ghi vào thư mục |
--upload
|
Sau khi hoàn thành, hãy chuyển dấu vết đến gói được chỉ định bằng thông báo IncidentReportConfig trong cấu hình truy vết proto. |
--no-guardrails
|
Tắt các biện pháp bảo vệ chống lại việc sử dụng tài nguyên quá mức khi bật cờ --upload trong quá trình kiểm thử. |
--reset-guardrails
|
Đặt lại trạng thái cố định của các quy định và thoát để kiểm thử. |
--rsave-for-bugreport
|
Nếu một dấu vết có bugreport_score > 0 đang chạy, hãy lưu dấu vết đó vào một tệp. Xuất ra đường dẫn khi hoàn tất.
|
--query
|
Truy vấn trạng thái dịch vụ và in dưới dạng văn bản mà con người có thể đọc được. |
--query-raw
|
Tương tự như --query , nhưng in byte được mã hoá nguyên bản của tracing_service_state.proto. |
--help | -h
|
In văn bản trợ giúp cho công cụ perfetto . |
Chế độ sáng
Cú pháp chung để sử dụng perfetto
ở chế độ sáng như sau:
adb shell perfetto [ --time TIMESPEC ] [ --buffer SIZE ] [ --size SIZE ] [ ATRACE_CAT | FTRACE_GROUP/FTRACE_NAME | FTRACE_GROUP/* ]... --out FILE
Bảng sau đây liệt kê các tuỳ chọn có sẵn khi sử dụng perfetto
ở chế độ sáng.
Tuỳ chọn | Mô tả |
---|---|
--time TIME[s|m|h] |
|
Chỉ định thời lượng theo dõi bằng giây, phút hoặc giờ.
Ví dụ: --time 1m chỉ định thời lượng theo dõi là 1 phút.
Thời lượng mặc định là 10 giây.
|
--buffer SIZE[mb|gb] |
|
Chỉ định kích thước vùng đệm đổ chuông theo megabyte (mb) hoặc gigabyte (gb).
Thông số mặc định là --buffer 32mb .
|
--size SIZE[mb|gb] |
|
Chỉ định kích thước tệp tối đa tính bằng megabyte (mb) hoặc gigabyte (gb). Theo mặc định, perfetto chỉ sử dụng bộ đệm vòng trong bộ nhớ.
|
--app | -a
|
Tên ứng dụng Android (atrace) |
Các tuỳ chọn sau đây được liệt kê theo danh sách các thông số sự kiện:
Sự kiện | Nội dung mô tả |
---|---|
ATRACE_CAT |
Chỉ định danh mục atrace mà bạn muốn ghi lại dấu vết.
Ví dụ: lệnh sau đây theo dõi Trình quản lý cửa sổ bằng cách sử dụng atrace :
adb shell perfetto --out FILE wm
Để ghi lại các danh mục khác, hãy xem danh sách danh mục |
FTRACE_GROUP/FTRACE_NAME |
Chỉ định các sự kiện ftrace mà bạn muốn ghi lại dấu vết.
Ví dụ: lệnh sau đây theo dõi các sự kiện sched/sched_switch :
adb shell perfetto --out FILE sched/sched_switch |
Chế độ thông thường
Cú pháp chung để sử dụng perfetto
ở chế độ thông thường như sau:
adb shell perfetto [ --txt ] --config CONFIG_FILE --out FILE
Bảng sau đây liệt kê các tuỳ chọn có sẵn khi sử dụng perfetto
ở chế độ thông thường.
Tuỳ chọn | Mô tả |
---|---|
--config CONFIG_FILE | -c CONFIG_FILE
|
Chỉ định đường dẫn đến tệp cấu hình. Ở chế độ thông thường, một số
cấu hình có thể được mã hóa trong vùng đệm giao thức cấu hình. Tệp này phải tuân thủ giản đồ vùng đệm giao thức được xác định trong AOSP trace_config.proto .
Chọn và định cấu hình nguồn dữ liệu bằng thành phần |
--txt
|
Hướng dẫn perfetto phân tích cú pháp tệp cấu hình dưới dạng pbtxt . Cờ này chỉ dành cho mục đích kiểm thử cục bộ và bạn không nên bật tính năng này cho quá trình sản xuất. |
Các nguồn dữ liệu được hỗ trợ
Phần này mô tả các nguồn mà perfetto
sử dụng để tạo dấu vết của bạn.
ftrace
Nguồn dữ liệu ftrace
cho phép perfetto
nhận sự kiện từ kernel.
Bật nguồn này bằng cách đặt ftrace_config
trong DataSourceConfig.
Sau đây là các sự kiện mà bạn có thể bật:
-
sched/sched_switch
sched/sched_wakeup
sched/sched_wakeup_new
sched/sched_process_exec
sched/sched_process_exit
sched/sched_process_fork
sched/sched_process_free
sched/sched_process_hang
sched/sched_process_wait
Sự kiện của hệ thống tệp:
Tuỳ thuộc vào thiết bị, phiên bản hệ điều hành hoặc kernel, có thể hiển thị thêm nhiều sự kiện. Để biết thêm thông tin, hãy tham khảo phần giao thức cấu hình.
Số liệu thống kê về quy trình
Nguồn dữ liệu thống kê quy trình cho phép bạn nhận các bộ đếm được thăm dò ý kiến về các quy trình của hệ thống và từng quy trình riêng lẻ.
Bật nguồn này bằng cách đặt process_stats_config
và sys_stats_config
trong DataSourceConfig.
Dữ liệu mà perfetto
tạo ra bao gồm:
-
/proc/meminfo
/proc/vmstat
/proc/stat
-
/proc/\<pid\>/status
/proc/\<pid\>/oom_score_adj
Tuỳ thuộc vào thiết bị, phiên bản hệ điều hành và kernel, có thể hiển thị thêm nhiều sự kiện. Để tìm hiểu thêm, hãy tham khảo các giao thức cấu hình cho sys_stats
và process_stats
.
heapprofd
heapprofd
cho phép bạn lấy mẫu cho nguyên nhân của việc sử dụng bộ nhớ gốc.
Bật nguồn này bằng cách đặt heapprofd_config
trong DataSourceConfig. Chế độ cài đặt này tạo ra ProfilePackets
, bao gồm cả khung Java của ngăn xếp lệnh gọi.
Bạn có thể tìm thêm thông tin về cách sử dụng heapprofd
tại perfetto.dev
.
Các nguồn khác
Tuỳ thuộc vào thiết bị, phiên bản hệ điều hành và kernel, có thể hiển thị thêm nhiều nguồn dữ liệu. Để tìm hiểu thêm, hãy tham khảo phần giao thức cấu hình nguồn dữ liệu.
Bạn có thể tìm thêm thông tin về perfetto
tại
perfetto.dev.