Profil Dasar Pengukuran meningkatkan kecepatan eksekusi kode hingga 30% dengan menghindari langkah-langkah kompilasi interpreter dan tepat waktu (JIT) untuk perjalanan pengguna umum. Profil Dasar Pengukuran memungkinkan Anda memilih perjalanan pengguna yang ingin dioptimalkan dan dapat membantu meningkatkan startup aplikasi, mengurangi jank, dan lainnya—yang pada gilirannya menghasilkan peningkatan metrik bisnis, seperti retensi dan rating pengguna. Pelajari Profil Dasar Pengukuran lebih lanjut.
Tim Kalender Android menerapkan Profil Dasar Pengukuran dan mengamati peningkatan waktu mulai aplikasi sebesar ~20% dan pengurangan frame lambat atau macet sebesar ~50%. Berikut tindakan yang mereka lakukan secara menyeluruh untuk mencapai peningkatan performa ini, mulai dari alasan mereka memutuskan untuk menggunakan Profil Dasar Pengukuran hingga cara mereka mengukur dampaknya.
Profil Cloud vs. Profil Dasar Pengukuran
Tim Android Kalender telah menggunakan Profil Cloud, yang merupakan metode Pengoptimalan yang Dipandu Profil (PGO) lainnya berdasarkan interaksi pengguna di dunia nyata dengan aplikasi. Berikut perbandingan Profil Cloud dan Profil Dasar Pengukuran:
| Jenis profil | Siapkan | Perjalanan pengguna yang disertakan | Berfungsi paling baik jika basis pengguna | Dampak yang dirasakan | Versi Android yang didukung |
|---|---|---|---|---|---|
Profil Cloud |
Diaktifkan secara default |
Dipilih secara otomatis berdasarkan data pengguna dunia nyata |
Besar |
Dalam beberapa hari |
Android 9 (API level 28) dan yang lebih tinggi |
Profil Dasar Pengukuran |
Dikonfigurasi oleh Anda |
Dipilih oleh Anda |
Semua ukuran |
Segera |
Android 7 (level API 24) dan yang lebih tinggi |
Salah satu alasan utama tim Kalender Android memutuskan untuk menambahkan Profil Baseline ke codebase mereka adalah karena mereka beralih ke siklus rilis mingguan yang lebih cepat. Meskipun Profil Cloud memberikan peningkatan performa yang signifikan, perlu waktu 1-2 hari setelah peluncuran aplikasi agar Profil Cloud mencapai dampak puncaknya karena Profil Cloud mengandalkan penggabungan data pengguna di dunia nyata. Melengkapi Profil Cloud dengan Profil Dasar Pengukuran memberi pengguna lebih banyak waktu untuk merasakan peningkatan performa puncak sebelum versi aplikasi berikutnya diluncurkan.
Selain itu, tim Kalender Android perlu dapat memilih perjalanan penting pengguna (CUJ) tertentu yang disertakan dalam profil, yang dapat Anda lakukan menggunakan Profil Dasar Pengukuran.
Secara umum, sebaiknya gunakan Profil Dasar Pengukuran selain Profil Cloud, yang diaktifkan secara default, untuk hasil performa terbaik.
Perjalanan pengguna yang disertakan
Tim Kalender Android memilih untuk menyertakan dua CUJ dalam Profil Dasar Pengukuran mereka:
- Membuka aplikasi dalam tampilan jadwal: awalnya tampilan default, jadi penting untuk mengoptimalkan pengguna yang menggunakan aplikasi untuk pertama kalinya atau yang tidak mengubah setelan default.
- Membuka aplikasi dalam tampilan bulan: tampilan yang dipilih oleh banyak pengguna, berdasarkan data pengguna. Untuk melacak cara pengguna menggunakan aplikasi Anda, Anda dapat menggunakan alat seperti Firebase.
Secara umum, Anda harus menambahkan CUJ yang menguntungkan bisnis (jika berlaku) dan CUJ yang paling umum. Untuk mempelajari lebih lanjut cara memilih CUJ yang akan dioptimalkan, lihat Yang harus disertakan.
Implementasi
Tim Kalender Android menggunakan wrapper internal untuk library Jetpack Macrobenchmark guna membuat Profil Dasar Pengukuran untuk mempermudah integrasi dengan alat internal dan skalabilitas umum.
Berikut konfigurasi pengujian Macrobenchmark untuk membuka aplikasi dalam tampilan jadwal:
@Test
fun generateProfile() =
baselineProfileRule.collect(PACKAGE_NAME, includeInStartupProfile = true) {
uiAutomator {
startApp(packageName = PACKAGE_NAME)
// Verify pre-existing recurring events and tasks are shown.
// onElement waits for the element by default
onElement { textAsString() == "Recurring event" }
onElement { textAsString() == "Recurring task" }
// Open drawer and verify selected view.
onElement { contentDescriptionAsString() == "Show Calendar List and Settings drawer" }.click()
onElement { contentDescriptionAsString() == "Schedule view, Selected" }
}
}
Ganti item berikut:
- PACKAGE_NAME: Nama paket aplikasi yang Profil Dasar Pengukurannya ingin Anda buat.
Mengukur dampak menggunakan rilis terkontrol
Karena Profil Dasar sangat terkait dengan APK yang disertakan dan digabungkan sebelum aplikasi Anda berjalan, Anda tidak dapat menjalankan eksperimen A/B standar untuk memahami dampaknya. Namun, tim Kalender Android dapat mengukur dampak secara akurat menggunakan rilis terkontrol, yang pada dasarnya merilis versi aplikasi baru hanya kepada sebagian kecil pengguna dan membandingkannya dengan pengguna yang menggunakan versi yang serupa dengan rilis sebelumnya.
Dengan Profil Dasar Pengukuran, mereka langsung melihat peningkatan signifikan di berbagai area. Statistik ini dikumpulkan di berbagai perangkat dan semua pengguna. Pengguna yang memulai di tampilan jadwal dan bulan kemungkinan akan mendapatkan manfaat terbesar, tetapi pengguna lain juga akan mendapatkan manfaat karena pengoptimalan proses bersama seperti memuat data kalender dari database.
- Latensi median peluncuran aplikasi interaktif (skenario paling umum) menurun dari 775 md menjadi 644 md (17%)
- Latensi cold start median menurun dari 1.058 md menjadi 901 md (15%)
- Latensi warm start median menurun dari 453 md menjadi 378 md (17%)
- Kecepatan frame tersendat median berkurang sebesar 42-60% dalam tampilan jadwal dan bulan
Perlu diingat bahwa jika Anda menggunakan Profil Cloud bersama dengan Profil Dasar Pengukuran, Anda mungkin akan melihat sedikit penurunan peningkatan selama minggu pertama, saat Profil Cloud dibuat. Namun, Anda tetap akan melihat peningkatan performa yang signifikan dengan Profil Dasar Pengukuran di atas pengoptimalan lain yang telah Anda lakukan.
Untuk mempelajari alat dan fitur lebih lanjut, lihat referensi berikut: