Menyiapkan lingkungan untuk pengujian performa

Anda dapat mengidentifikasi potensi bottleneck dan meningkatkan performa aplikasi secara keseluruhan dengan merekam aktivitas perangkat dalam waktu singkat dan mengumpulkan rekaman aktivitas periode startup aplikasi. Halaman ini menunjukkan cara menyiapkan lingkungan Anda untuk pengujian performa.

Menggunakan library Macrobenchmark

Library Macrobenchmark mengukur interaksi pengguna akhir yang lebih besar, seperti startup, interaksi dengan UI, dan animasi. Library ini menyediakan kontrol langsung atas lingkungan performa yang Anda uji. Library tersebut memungkinkan Anda mengontrol kompilasi, memulai, dan menghentikan aplikasi untuk mengukur waktu presisi startup aplikasi secara langsung. Pengujian ini juga berfungsi untuk meminimalkan derau dan perbedaan di antara pengujian.

Menggunakan perangkat kelas menengah untuk mengidentifikasi potensi masalah performa

Uji performa pada setiap jenis perangkat yang diinginkan. Perangkat kelas atas dengan komponen cepat dapat menyembunyikan masalah performa pada perangkat dengan RAM yang lebih lama, lebih lambat, atau rendah. Perangkat kelas bawah dapat memerlukan waktu lebih lama untuk memuat data atau menjalankan kode, sehingga mempermudah identifikasi bottleneck. Mengoptimalkan performa untuk perangkat kelas bawah biasanya juga akan berpengaruh positif pada pengoptimalan untuk perangkat kelas atas.

Mengurangi derau

  • Jaringan: uji aplikasi atau proses Anda dengan kecepatan Wi-Fi internet yang kuat dan stabil. Jika waktu startup aplikasi menyertakan permintaan jaringan, perhatikan hal ini sebagai tempat kemungkinan terjadinya variabilitas.
  • Penggunaan RAM: jangan menjalankan aplikasi lain di latar belakang perangkat saat menguji performa startup aplikasi.
  • Baterai: pastikan perangkat Anda diisi daya untuk menghindari throttling performa daya rendah yang spesifik untuk hardware.

Menguji di build rilis

Gunakan build rilis untuk menguji performa. Build debug tidak cocok untuk proses debug performa, karena tidak menyediakan pengoptimalan kompilasi dan berdampak signifikan terhadap performa.

Namun, Anda dapat menggunakan build rilis yang tidak di-obfuscate untuk mengidentifikasi class dan nama operasi. Secara khusus, sebaiknya aktifkan minifikasi (R8) dan nonaktifkan obfuscation, dengan -dontobfuscate dalam file proguard. Identifikasi tata letak, aset, dan resource akan lebih mudah jika build tidak di-obfuscate.

Pastikan Anda menyertakan tanda profileable dalam manifes sehingga peristiwa kustom Anda terlihat dalam build yang tidak dapat di-debug. Tanda ini tersedia di Android 10 (level API 29) dan yang lebih tinggi.

Menambahkan rekaman aktivitas kustom ke operasi aplikasi

Tambahkan rekaman aktivitas kustom dalam aplikasi Anda untuk memudahkan identifikasi operasi yang dilakukan oleh aplikasi Anda dibandingkan dengan library lain. Hal ini membantu Anda mendapatkan lebih banyak konteks tentang performa aplikasi setiap saat.