Études de cas

Monzo améliore ses métriques de performances jusqu'à 35 % grâce à une simple mise à jour R8

Temps de lecture : 2 min
Ben Weiss
Ingénieur chargé des relations avec les développeurs

Monzo est une banque numérique britannique qui compte 15 millions de clients et dont le nombre ne cesse d'augmenter. À mesure que l'application évoluait, l'équipe d'ingénieurs a identifié le temps de démarrage de l'application comme un point critique à améliorer, mais craignait que cela ne nécessite des modifications importantes de leur code.

En activant pleinement les optimisations R8, Monzo a réussi à réduire considérablement son taux d'erreurs "L'application ne répond pas" (ANR) de 35 %. Ce simple changement a prouvé que les optimisations efficaces ne nécessitent pas toujours des efforts d'ingénierie complexes.

Obtenir des gains de performances importants avec le mode complet R8

Monzo a identifié le mode complet R8 comme une solution simple à essayer. Et cela a fonctionné, améliorant les performances de manière globale :

  • Fiabilité du démarrage : les démarrages à froid ont été améliorés de 30 %, les démarrages tièdes de 24 % et les démarrages à chaud de 14 %.
  • Vitesse de lancement : les temps de lancement P50 ont été améliorés de 11 % et les temps de lancement P90 de 12 %.
  • Efficacité : la taille globale de l'application a été réduite de 9 %.
  • Stabilité : réduction des erreurs ANR de 35 %.
AANDDM_Monzo_Quote-1.png
large_AANDDM_Monzo_Quote-2.png

Activer les optimisations en un seul changement

De nombreuses applications Android utilisent un fichier de configuration par défaut obsolète qui désactive la plupart des fonctionnalités de l'optimiseur R8. Pour améliorer les performances, Monzo a principalement remplacé le fichier par défaut proguard-android.txt par proguard-android-optimize.txt. Cette modification supprime l'instruction -dontoptimize et permet à R8 de faire son travail correctement.

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

Après avoir effectué cette modification, il est intéressant de consulter vos fichiers de configuration Keep. Ces fichiers indiquent à R8 les parties de votre code à laisser telles quelles (généralement parce qu'elles sont appelées de manière dynamique ou par des bibliothèques externes). En supprimant les règles Keep inutiles, vous permettez à R8 d'en faire plus.

Améliorer les performances de défilement avec les profils de référence

Pour améliorer encore l'expérience utilisateur, Monzo a implémenté des profils de référence, en ciblant spécifiquement les performances de défilement et de rendu dans son flux principal. Cette stratégie a permis d'optimiser entièrement les parcours utilisateur les plus courants (ouverture de l'application et défilement du flux). L'impact sur le rendu a été considérable : les performances de défilement P90 ont été améliorées de 71 % et celles de défilement P95 de 87 %. Le défilement dans l'application est désormais plus fluide.

Monzo a intégré cette fonctionnalité à son processus de publication pour maintenir ces améliorations au fil du temps. "Nous déclenchons la génération du profil de référence chaque jour de la semaine (avant d'exécuter nos builds nocturnes) et validons les dernières modifications une fois l'opération terminée", explique Neumayer.

Se tenir informé des dernières nouveautés en matière de développement Android

L'expérience de Monzo montre ce qu'il est possible de faire lorsque vous suivez les recommandations concernant les outils de compilation Android. Alors que les anciennes applications ont souvent du mal à gérer l'utilisation complexe de la réflexion, Monzo a trouvé la transition simple en documentant correctement ses règles Keep. "Nous ajoutons toujours un commentaire expliquant pourquoi les règles Keep sont en place, afin de savoir quand il est possible de les supprimer sans risques", note Neumayer.

Quel conseil donnerait Neumayer aux autres équipes ? Vérifiez régulièrement vos pratiques par rapport aux normes actuelles : "Consultez les dernières recommandations de Google concernant les performances des applications et vérifiez que vous suivez tous les derniers conseils."

Pour commencer et en savoir plus sur R8, consultez https://d.android.com/r8.

Écrit par :

Lire la suite