perfetto
adalah alat yang memungkinkan Anda mengumpulkan informasi performa dari
perangkat Android melalui
Android Debug Bridge (ADB). Panggil alat perfetto
menggunakan perintah adb shell perfetto ...
.
perfetto
menggunakan berbagai
sumber untuk mengumpulkan rekaman aktivitas performa dari perangkat Anda, seperti:
ftrace
untuk informasi dari kernelatrace
untuk anotasi ruang pengguna di layanan dan aplikasiheapprofd
untuk informasi penggunaan memori native layanan dan aplikasi
Halaman ini menjelaskan cara memanggil perfetto
dan mengonfigurasinya untuk menghasilkan
output yang diinginkan. Untuk informasi selengkapnya, lihat dokumentasi perfetto
.
Sintaksis
Bagian ini menjelaskan cara menggunakan ADB untuk memanggil perfetto
dalam berbagai mode
dan membuat rekaman aktivitas.
Pemilihan sumber data
perfetto
menyertakan dua mode berikut yang menentukan sumber data
yang digunakan untuk mencatat rekaman aktivitas Anda:
- mode terang: hanya dapat memilih subset sumber data, khususnya
atrace
danftrace
. Namun, mode ini menawarkan antarmuka yang mirip dengansystrace
. - mode normal: mendapatkan konfigurasinya dalam buffering protokol dan memungkinkan Anda
memanfaatkan lebih banyak fungsi
perfetto
menggunakan sumber data yang berbeda denganatrace
danftrace
.
Opsi umum
Tabel berikut mencantumkan opsi yang tersedia saat menggunakan perfetto
dalam mode
apa pun:
Opsi | Deskripsi |
---|---|
--background |
|
perfetto segera keluar dari antarmuka command line dan terus
mencatat rekaman aktivitas Anda di latar belakang. |
--background-wait | -D
|
Seperti --background , tetapi menunggu (hingga 30 detik) supaya semua
sumber data dimulai sebelum keluar. Kode keluar
adalah nol jika konfirmasi berhasil diterima
dan bukan nol jika sebaliknya (error atau waktu tunggu habis).
|
--alert-id
|
ID notifikasi yang memicu rekaman aktivitas ini. |
--config-id
|
ID yang memicu konfigurasi. |
--config-uid
|
UID aplikasi yang mendaftarkan konfigurasi. |
--subscription-id
|
ID langganan yang memicu rekaman aktivitas ini. |
--out OUT_FILE |
|
Menentukan jalur yang diinginkan ke file rekaman aktivitas output, atau Catatan: Anda harus menentukan nama jalur lengkap dari
file output. Biasanya, file harus ditulis ke
folder |
--upload
|
Setelah selesai, meneruskan rekaman aktivitas ke paket yang ditentukan oleh pesan
IncidentReportConfig dalam konfigurasi rekaman aktivitas proto. |
--no-guardrails
|
Menonaktifkan perlindungan terhadap penggunaan resource yang berlebihan saat mengaktifkan flag
--upload selama pengujian. |
--reset-guardrails
|
Mereset status persisten dari guardrail dan keluar untuk pengujian. |
--rsave-for-bugreport
|
Jika rekaman aktivitas dengan bugreport_score > 0 berjalan,
rekaman aktivitas akan disimpan ke dalam file. Menghasilkan jalur jika selesai.
|
--query
|
Mengkueri status layanan dan menampilkannya sebagai teks yang dapat dibaca manusia. |
--query-raw
|
Mirip dengan --query , tetapi menampilkan byte yang dienkode proto mentah dari
tracing_service_state.proto. |
--help | -h
|
Mencetak teks bantuan untuk alat perfetto .
|
Mode terang
Sintaksis umum untuk menggunakan perfetto
dalam mode terang adalah seperti berikut:
adb shell perfetto [ --time TIMESPEC ] [ --buffer SIZE ] [ --size SIZE ] [ ATRACE_CAT | FTRACE_GROUP/FTRACE_NAME | FTRACE_GROUP/* ]... --out FILE
Tabel berikut mencantumkan opsi yang tersedia saat menggunakan perfetto
dalam
mode terang:
Opsi | Deskripsi |
---|---|
--time TIME[s|m|h] |
|
Menentukan durasi rekaman aktivitas dalam detik, menit, atau jam.
Misalnya, --time 1m menentukan durasi rekaman aktivitas 1 menit.
Durasi default-nya adalah 10 detik.
|
--buffer SIZE[mb|gb] |
|
Menentukan ukuran buffer ring dalam megabyte (mb) atau gigabyte (gb).
Parameter default-nya adalah --buffer 32mb .
|
--size SIZE[mb|gb] |
|
Menentukan ukuran file maksimal dalam megabyte (mb) atau gigabyte (gb). Secara
default, perfetto hanya menggunakan buffer ring dalam memori.
|
--app | -a
|
Nama aplikasi Android (atrace) |
Opsi ini diikuti dengan daftar penentu peristiwa:
Peristiwa | Deskripsi |
---|---|
ATRACE_CAT |
Menentukan kategori atrace yang ingin Anda catat rekaman aktivitasnya.
Misalnya, perintah berikut merekam aktivitas Window Manager menggunakan atrace :
adb shell perfetto --out FILE wm
Untuk mencatat kategori lain, lihat
daftar
kategori |
FTRACE_GROUP/FTRACE_NAME |
Menentukan peristiwa ftrace yang ingin Anda catat rekaman aktivitasnya.
Misalnya, perintah berikut merekam aktivitas peristiwa sched/sched_switch :
adb shell perfetto --out FILE sched/sched_switch |
Mode normal
Sintaksis umum untuk menggunakan perfetto
dalam mode normal adalah sebagai berikut:
adb shell perfetto [ --txt ] --config CONFIG_FILE --out FILE
Tabel berikut mencantumkan opsi yang tersedia saat menggunakan perfetto
dalam mode normal:
Opsi | Deskripsi |
---|---|
--config CONFIG_FILE | -c CONFIG_FILE
|
Menentukan jalur ke file konfigurasi. Dalam mode normal, beberapa konfigurasi dapat dienkode dalam buffering protokol konfigurasi. File ini
harus sesuai dengan skema buffering protokol yang didefinisikan dalam
trace_config.proto AOSP.
Pilih dan konfigurasi sumber data menggunakan anggota
|
--txt
|
Menginstruksikan perfetto untuk menguraikan file konfigurasi sebagai pbtxt . Flag
ini hanya ditujukan untuk pengujian lokal, dan sebaiknya Anda tidak
mengaktifkannya untuk produksi. |
Sumber data yang didukung
Bagian ini menjelaskan sumber yang berbeda yang digunakan perfetto
untuk membuat
rekaman aktivitas.
ftrace
Sumber data ftrace
memungkinkan perfetto
untuk mendapatkan peristiwa dari kernel.
Aktifkan sumber ini dengan menetapkan
ftrace_config
di DataSourceConfig.
Peristiwa yang dapat diaktifkan mencakup:
-
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
Peristiwa sistem file:
Bergantung pada perangkat, versi OS, atau kernel, peristiwa lainnya mungkin tersedia. Untuk informasi selengkapnya, lihat mengonfigurasi proto.
Statistik Proses
Sumber data statistik proses memungkinkan Anda untuk mendapatkan penghitung yang di-polling tentang sistem dan proses masing-masing.
Aktifkan sumber ini dengan menetapkan process_stats_config
dan sys_stats_config
di DataSourceConfig.
Data yang dihasilkan oleh perfetto
mencakup:
-
/proc/meminfo
/proc/vmstat
/proc/stat
-
/proc/\<pid\>/status
/proc/\<pid\>/oom_score_adj
Bergantung pada perangkat, versi OS, dan kernel, peristiwa lainnya mungkin
tersedia. Untuk mempelajari lebih lanjut, lihat proto konfigurasi untuk sys_stats
dan process_stats
.
heapprofd
heapprofd
memungkinkan Anda membuat sampel penyebab penggunaan memori native.
Aktifkan sumber ini dengan menetapkan heapprofd_config
di DataSourceConfig. Setelan ini menghasilkan ProfilePackets
,
termasuk frame Java callstack.
Informasi tambahan mengenai cara menggunakan heapprofd
dapat ditemukan di
perfetto.dev
.
Sumber lainnya
Bergantung pada perangkat, versi OS, dan kernel, sumber data lainnya mungkin tersedia. Untuk mempelajari lebih lanjut, lihat proto konfigurasi sumber data.
Informasi tambahan tentang perfetto
dapat ditemukan di
perfetto.dev.