perfetto
adalah alat yang memungkinkan Anda untuk mengumpulkan informasi performa dari
perangkat Android melalui
Android Debug Bridge (ADB). perfetto
menggunakan berbagai
sumber untuk mengumpulkan rekaman aktivitas performa dari perangkat Anda, seperti berikut:
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.
Sintaks
Bagian ini menjelaskan cara menggunakan ADB untuk memanggil perfetto
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
dan ftrace. Namun, mode tersebut menawarkan antarmuka yang mirip dengan
systrace
. - mode normal: mendapatkan konfigurasinya dalam buffer protokol dan memungkinkan Anda
memanfaatkan lebih banyak daya
perfetto
dengan menggunakan sumber data yang berbeda untuk atrace dan ftrace.
Bagian ini menjelaskan perfetto
sintaks yang diperlukan untuk membuat rekaman aktivitas menggunakan
masing-masing mode yang dijelaskan di atas.
Opsi umum
Tabel berikut mencantumkan opsi yang tersedia saat menggunakan perfetto
dalam mode
apa pun.
Opsi | Deskripsi |
---|---|
--background | -d
|
Perfetto segera keluar dari antarmuka command line dan terus mencatat rekaman aktivitas Anda di latar belakang. |
--out OUT_FILE | -o OUT_FILE
|
Menentukan jalur yang diinginkan ke file rekaman aktivitas output, atau - untuk stdout.
perfetto menulis output ke file yang dijelaskan dalam flag
di atas. Format output dikompilasi dengan format yang didefinisikan dalam
trace.proto AOSP.
|
--dropbox TAG
|
Mengupload rekaman aktivitas Anda melalui DropBoxManager API menggunakan tag yang Anda tentukan. |
--no-guardrails
|
Menonaktifkan perlindungan terhadap penggunaan resource yang berlebihan saat mengaktifkan flag
--dropbox selama pengujian. |
--reset-guardrails
|
Menyetel ulang status persisten dari guardrail dan keluar (untuk pengujian). |
--query
|
Mengkueri status layanan dan menampilkannya sebagai teks yang dapat dibaca manusia. |
--query-raw
|
Mirip dengan --kueri, tetapi menampilkan byte yang dienkode proto mentah dari
tracing_service_state.proto. |
--help | -h
|
Mencetak teks bantuan untuk alat perfetto .
|
Mode terang
Sintaks 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/* ]...
Tabel berikut mencantumkan opsi yang tersedia saat menggunakan perfetto
dalam
mode terang.
Opsi | Deskripsi |
---|---|
--time TIME[s|m|h] | -t 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] | -b SIZE[mb|gb]
|
Menentukan ukuran buffer ring dalam megabyte (mb) atau gigabyte (gb).
Parameter default-nya adalah --buffer 32mb .
|
--size SIZE[mb|gb] | -s SIZE[mb|gb]
|
Menentukan ukuran file maksimal dalam megabyte (mb) atau gigabyte (gb). Secara
default, perfetto hanya menggunakan buffer ring dalam memori.
|
Hal ini diikuti dengan daftar penentu peristiwa
Acara | 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 atrace ini. |
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
Sintaks umum untuk menggunakan perfetto
dalam mode normal adalah sebagai berikut:
adb shell perfetto [ --txt ] --config CONFIG_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 buffer protokol konfigurasi. File ini
harus sesuai dengan skema buffering protokol yang didefinisikan dalam
trace_config.proto AOSP.
Anda memilih dan mengonfigurasi sumber data menggunakan anggota
|
--txt
|
Menginstruksikan perfetto untuk menguraikan file konfigurasi sebagai pbtxt. Flag
ini bersifat eksperimental, mengaktifkannya untuk produksi tidak
direkomendasikan. |
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.
Anda dapat mengaktifkan sumber ini dengan menyetel 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, dan 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 masing-masing proses.
Anda dapat mengaktifkan sumber ini dengan menyetel process_stats_config dan sys_stats_config di DataSourceConfig.
Data yang dihasilkan oleh profetto
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 untuk mengambil sampel penyebab penggunaan memori native.
Anda dapat mengaktifkan sumber ini dengan menyetel heapprofd_config di DataSourceConfig.
Ini menghasilkan ProfilePackets. Hal ini mencakup frame Java dari stack panggilan.
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.