Mengambil sampel callstack

Callstack berguna untuk mengidentifikasi hot spot CPU, atau bagian kode yang memerlukan waktu lama untuk dieksekusi. Callstack membantu Anda memahami bagian kode mana yang telah dieksekusi, dan alasan kode dipanggil.

Ringkasan sampel callstack

Untuk mengambil sampel callstack, pilih tugas Find CPU Hotspots (Callstack Sample) dari tab Home Android Studio Profiler. Setelah rekaman diuraikan, Anda akan melihat visual berikut:

Untuk melengkapi linimasa Penggunaan CPU dan Interaksi, bagian Thread menampilkan frame untuk setiap panggilan yang dilakukan oleh aplikasi dan sistem. Berikut beberapa tips untuk menavigasi sampel callstack:

  • Luaskan rangkaian pesan yang diinginkan dan gunakan pintasan keyboard untuk menavigasi frame stack. Klik frame stack untuk mendapatkan detail tentang peristiwa dan panggilan terkait di panel Analisis.
  • Untuk memfilter jenis frame stack tertentu, klik Ciutkan frame dan centang jenis frame yang ingin Anda sembunyikan. Menciutkan frame akan menghapusnya dari bagian Threads dan Analysis. Bergantung pada penyelidikan Anda, Anda mungkin ingin menciutkan frame dari mesin virtual Java (misalnya android::AndroidRuntime::start dan art::{...}), dan kernel sistem (misalnya [kernel.kallsyms]+{offset}). Biasanya, hal ini sesuai dengan menciutkan frame yang terkait dengan [kernel.kallsyms], /apex/, dan /system/*.

Karena program Java/Kotlin biasanya dijalankan melalui mesin virtual Java, saat Android Studio mengumpulkan callstack untuk program Java/Kotlin, callstack biasanya tidak hanya menyertakan kode Java/Kotlin, tetapi juga kode native yang diperlukan untuk menjalankan program itu sendiri dan agar program dapat berkomunikasi dengan sistem dan hardware.

  • Untuk melompat ke kode sumber yang terkait dengan frame stack, klik kanan frame dan klik Lompat ke sumber.
  • Untuk menandai frame stack yang terkait dengan peristiwa dalam tabel peristiwa, klik peristiwa tersebut.

Untuk mengetahui informasi tentang visual lainnya, lihat Merekam rekaman aktivitas sistem dan glosarium diagram.

Contoh kode native menggunakan command line

Secara internal, Android Studio menggunakan simpleperf untuk merekam aktivitas kode native aplikasi Anda. Jika ingin menentukan opsi tambahan untuk Simpleperf, seperti pengambilan sampel CPU perangkat tertentu atau menentukan durasi pengambilan sampel pada akurasi tinggi, Anda dapat menggunakan simpleperf dari command line.