perfetto

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 kernel
  • atrace untuk anotasi ruang pengguna di layanan dan aplikasi
  • heapprofd 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 DataSourceConfig dari TraceConfig, seperti yang didefinisikan dalam data_source_config.proto AOSP.

--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:

  • Aktivitas penjadwalan:

    • 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:

  • Peristiwa ATrace

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:

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.