Studi Kasus

Monzo meningkatkan metrik performa hingga 35% dengan update R8 sederhana

Waktu baca: 2 menit
Ben Weiss
Developer Relations Engineer

Monzo adalah bank digital Inggris Raya dengan 15 juta pelanggan dan terus bertambah. Seiring penskalaan aplikasi, tim engineering mengidentifikasi waktu mulai aplikasi sebagai area penting yang perlu ditingkatkan, tetapi khawatir hal itu akan memerlukan perubahan signifikan pada codebase mereka.

Dengan mengaktifkan pengoptimalan R8 sepenuhnya, Monzo berhasil mengurangi rasio Aplikasi Tidak Merespons (ANR) sebesar 35%. Perubahan sederhana ini membuktikan bahwa pengoptimalan yang berdampak tidak selalu memerlukan upaya engineering yang kompleks.

Mendapatkan peningkatan performa yang luas dengan mode penuh R8

Monzo mengidentifikasi mode penuh R8 sebagai perbaikan mudah yang patut dicoba; dan berhasil, meningkatkan performa secara keseluruhan:

  • Keandalan Startup: Cold start ditingkatkan sebesar 30%, Warm start sebesar 24%, dan Hot start sebesar 14%.
  • Kecepatan Peluncuran: Waktu peluncuran P50 meningkat sebesar 11% dan waktu peluncuran P90 meningkat sebesar 12%.
  • Efisiensi: Ukuran aplikasi secara keseluruhan berkurang sebesar 9%.
  • Stabilitas: Pengurangan ANR sebesar 35%.
AANDDM_Monzo_Quote-1.png
large_AANDDM_Monzo_Quote-2.png

Mengaktifkan pengoptimalan dengan satu perubahan

Banyak aplikasi Android menggunakan file konfigurasi default yang sudah usang yang menonaktifkan sebagian besar fungsi pengoptimal R8. Perubahan utama yang dilakukan Monzo untuk mendapatkan peningkatan performa ini adalah mengganti file default proguard-android.txt dengan proguard-android-optimize.txt. Perubahan ini menghapus instruksi -dontoptimize dan memungkinkan R8 melakukan tugasnya dengan benar.

  buildTypes {
  release {
    isMinifyEnabled = true
    isShrinkResources = true
    proguardFiles(
      getDefaultProguardFile("proguard-android-optimize.txt"),
    )
  }
}

Setelah melakukan perubahan ini, sebaiknya lihat file konfigurasi Keep Anda. File ini memberi tahu R8 bagian kode mana yang tidak boleh diubah (biasanya karena dipanggil secara dinamis atau oleh library eksternal). Merapikan aturan Keep yang tidak perlu berarti R8 dapat melakukan lebih banyak hal.

Meningkatkan performa scroll dengan Profil Dasar Pengukuran

Untuk lebih meningkatkan pengalaman pengguna, Monzo menerapkan Profil Baseline, yang secara khusus menargetkan performa scrolling dan rendering di feed utamanya. Strategi ini memastikan bahwa perjalanan pengguna yang paling umum—membuka aplikasi dan men-scroll feed—dioptimalkan sepenuhnya. Dampak pada rendering sangat besar: Performa scroll P90 menjadi 71% lebih cepat, dan performa scroll P95 meningkat sebesar 87%. Sekarang, men-scroll aplikasi menjadi lebih lancar dari sebelumnya.

Monzo memasukkan fitur ini ke dalam proses rilisnya untuk mempertahankan peningkatan ini dari waktu ke waktu. "Kami memicu pembuatan profil dasar pengukuran setiap hari kerja (sebelum menjalankan build malam kami) dan melakukan perubahan terbaru setelah selesai," jelas Neumayer.

Mengikuti perkembangan pengembangan Android modern

Pengalaman Monzo menunjukkan apa yang dapat dilakukan jika Anda terus mengikuti rekomendasi alat build Android terbaru. Meskipun aplikasi lama sering kali kesulitan dengan penggunaan refleksi yang kompleks, Monzo mendapati transisinya mudah dengan mendokumentasikan Aturan Penyimpanannya dengan benar. "Kami selalu menambahkan komentar yang menjelaskan alasan Aturan Penyimpanan diterapkan, sehingga kami tahu kapan aturan tersebut dapat dihapus dengan aman," kata Neumayer.

Apa saran Neumayer untuk tim lain? Periksa praktik Anda secara rutin berdasarkan standar saat ini: "Lihat rekomendasi terbaru dari Google terkait performa aplikasi dan periksa apakah Anda mengikuti semua saran terbaru."

Untuk memulai dan mempelajari R8 lebih lanjut, buka https://d.android.com/r8

Ditulis oleh:

Lanjutkan membaca