Memeriksa aktivitas CPU dengan CPU Profiler

Mengoptimalkan penggunaan CPU aplikasi Anda memiliki banyak keuntungan, misalnya memberikan pengalaman pengguna yang lebih cepat dan lebih lancar, serta menghemat masa pakai baterai perangkat.

Anda dapat menggunakan CPU Profiler untuk memeriksa penggunaan CPU dan aktivitas thread aplikasi Anda secara real time saat berinteraksi dengan aplikasi Anda, atau Anda dapat memeriksa detailnya di rekaman pelacakan metode, aktivitas fungsi, dan pelacakan sistem.

Jenis informasi spesifik yang direkam dan ditampilkan oleh CPU Profiler ditentukan oleh konfigurasi perekaman yang Anda pilih:

  • System Trace: Merekam detail akurat yang memungkinkan Anda memeriksa cara aplikasi Anda berinteraksi dengan resource sistem.
  • Method and function traces: Untuk setiap thread dalam proses aplikasi, Anda dapat mencari tahu metode (Java) atau fungsi (C/C++) mana yang dijalankan selama jangka waktu tertentu, serta resource CPU yang digunakan setiap metode atau fungsi selama eksekusinya. Anda juga dapat menggunakan rekaman pelacakan metode dan fungsi untuk mengidentifikasi pemanggil dan tujuan panggilan. Pemanggil adalah metode atau fungsi yang memanggil metode atau fungsi lainnya, dan tujuan panggilan adalah metode atau fungsi yang dipanggil oleh metode atau fungsi lainnya. Anda dapat menggunakan informasi ini untuk menentukan metode atau fungsi mana yang bertanggung jawab karena terlalu sering memanggil tugas tertentu dengan resource berat, serta mengoptimalkan kode aplikasi untuk menghindari pekerjaan yang tidak perlu.

    Saat merekam pelacakan metode, Anda dapat memilih rekaman dengan sampel atau yang berinstrumen. Saat merekam aktivitas fungsi, Anda hanya dapat menggunakan perekaman dengan sampel.

Untuk mengetahui detail tentang penggunaan dan pemilihan setiap opsi perekaman aktivitas ini, lihat Memilih konfigurasi perekaman.

Ringkasan CPU Profiler

Untuk membuka CPU Profiler, ikuti langkah-langkah berikut:

  1. Pilih View > Tool Windows > Profiler atau klik Profile pada toolbar.

    Jika diminta oleh dialog Select Deployment Target, pilih perangkat tujuan deployment aplikasi untuk pembuatan profil. Jika Anda telah menyambungkan perangkat melalui USB, tetapi tidak melihatnya tercantum, pastikan Anda telah mengaktifkan proses debug USB.

  2. Klik di mana saja dalam linimasa CPU untuk membuka CPU Profiler.

Saat dibuka, CPU Profiler akan langsung mulai menampilkan penggunaan CPU dan aktivitas thread aplikasi Anda. Anda akan melihat tampilan seperti gambar 1.

Gambar 1. Linimasa dalam CPU Profiler.

Seperti yang ditunjukkan pada gambar 1, tampilan default untuk CPU Profiler menyertakan linimasa berikut ini:

  1. Event timeline: Menunjukkan aktivitas dalam aplikasi Anda saat bertransisi melalui berbagai keadaan dalam siklus prosesnya, dan menunjukkan interaksi pengguna dengan perangkat, termasuk peristiwa rotasi layar. Untuk mengetahui informasi tentang cara mengaktifkan linimasa peristiwa di perangkat yang menjalankan Android 7.1 (API level 25) dan yang lebih rendah, lihat Mengaktifkan pembuatan profil lanjutan.
  2. CPU timeline: Menunjukkan penggunaan CPU secara real time oleh aplikasi Anda, berupa persentase dari total waktu CPU yang tersedia, dan total jumlah thread yang digunakan oleh aplikasi Anda. Linimasa ini juga menunjukkan penggunaan CPU oleh proses lainnya (seperti proses sistem atau aplikasi lainnya) sehingga Anda dapat membandingkannya dengan penggunaan oleh aplikasi Anda. Anda dapat memeriksa data penggunaan CPU secara historis dengan menggerakkan mouse di sepanjang sumbu horizontal linimasa.
  3. Thread activity timeline: Mencantumkan setiap thread yang termasuk dalam proses aplikasi dan menunjukkan aktivitasnya sepanjang linimasa tertentu menggunakan warna yang tercantum di bawah ini. Setelah merekam aktivitas, Anda dapat memilih thread dari linimasa ini untuk memeriksa datanya di panel rekaman aktivitas.
    • Hijau: Artinya thread aktif atau siap untuk menggunakan CPU. Dengan kata lain, thread sudah berjalan atau dalam keadaan dapat dijalankan.
    • Kuning: Thread aktif, tetapi sedang menunggu operasi I/O, seperti I/O jaringan atau disk, sebelum dapat menyelesaikan pekerjaannya.
    • Abu-Abu: Thread sedang tidur dan tidak menggunakan waktu CPU sama sekali. Hal ini terkadang terjadi ketika thread memerlukan akses ke resource yang belum tersedia. Thread akan tidur dengan sendirinya, atau kernel akan menidurkan thread hingga resource yang diperlukannya tersedia.

    CPU Profiler juga melaporkan penggunaan CPU oleh thread yang ditambahkan Android Studio dan platform Android ke proses aplikasi Anda, misalnya JDWP, Profile Saver, Studio:VMStats, Studio:Perfa, dan Studio:Heartbeat (meskipun nama sebenarnya yang ditampilkan dalam linimasa aktivitas thread mungkin bervariasi). Android Studio melaporkan data ini agar Anda dapat mengidentifikasi kapan aktivitas thread dan penggunaan CPU sebenarnya disebabkan oleh kode aplikasi Anda.