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:
- ftraceuntuk informasi dari kernel
- atraceuntuk anotasi ruang pengguna di layanan dan aplikasi
- heapprofduntuk 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 atracedanftrace. Namun, mode ini menawarkan antarmuka yang mirip dengansystrace.
- mode normal: mendapatkan konfigurasinya dalam buffering protokol dan memungkinkan Anda
memanfaatkan lebih banyak fungsi perfettomenggunakan sumber data yang berbeda denganatracedanftrace.
Opsi umum
Tabel berikut mencantumkan opsi yang tersedia saat menggunakan perfetto dalam mode
apa pun:
Tabel 1. Daftar opsi alat perfetto umum yang tersedia.
| Opsi | Deskripsi | 
|---|---|
| --background | | perfettosegera 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 IncidentReportConfigdalam konfigurasi rekaman aktivitas proto. | 
| --no-guardrails | Menonaktifkan perlindungan terhadap penggunaan resource yang berlebihan saat mengaktifkan flag --uploadselama 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 daritracing_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:
Tabel 2. Daftar opsi alat perfetto
yang tersedia saat menggunakan mode terang.
| Opsi | Deskripsi | 
|---|---|
| --time TIME[s|m|h] | | Menentukan durasi rekaman aktivitas dalam detik, menit, atau jam.
     Misalnya, --time 1mmenentukan 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, perfettohanya menggunakan buffer ring dalam memori. | 
| --app | -a | Nama aplikasi Android (atrace) | 
Opsi ini diikuti dengan daftar penentu peristiwa:
Tabel 3. Daftar penentu peristiwa untuk mode terang.
| Peristiwa | Deskripsi | 
|---|---|
| ATRACE_CAT | Menentukan kategori atraceyang ingin Anda catat rekaman aktivitasnya.
    Misalnya, perintah berikut merekam aktivitas Window Manager menggunakanatrace:
    adb shell perfetto --out FILE wm
    
    Untuk mencatat kategori lain, lihat
     daftar
       kategori  | 
| FTRACE_GROUP/FTRACE_NAME | Menentukan peristiwa ftraceyang ingin Anda catat rekaman aktivitasnya.
      Misalnya, perintah berikut merekam aktivitas peristiwasched/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:
Tabel 4. Daftar opsi alat perfetto
yang tersedia saat menggunakan 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.protoAOSP.Pilih dan konfigurasi sumber data menggunakan anggota
        | 
| --txt | Menginstruksikan perfettountuk menguraikan file konfigurasi sebagaipbtxt. 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.
