Monzo améliore ses métriques de performances de 35% grâce à une simple mise à jour de R8
Temps de lecture : 2 min
Monzo est une banque numérique britannique qui compte 15 millions de clients et qui ne cesse de se développer. À mesure que l'application s'est développée, l'équipe d'ingénierie a identifié le temps de démarrage de l'application comme un domaine d'amélioration essentiel, mais craignait que cela ne nécessite des modifications importantes de sa codebase.
En activant complètement les optimisations R8, Monzo a réduit de 35% son taux d'erreurs ANR (l'application ne répond pas). Ce simple changement a prouvé que les optimisations efficaces ne nécessitent pas toujours des efforts d'ingénierie complexes.
Améliorer les performances globales avec le mode complet de R8
Monzo a identifié le mode complet de R8 comme une solution simple à tester. Et cela a fonctionné, en améliorant les performances à tous les niveaux :
- Fiabilité au 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 de 35 % des erreurs ANR.
Activer les optimisations en une seule modification
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. Le principal changement apporté par Monzo pour améliorer les performances a été de remplacer le fichier proguard-android.txt par défaut par proguard-android-optimize.txt. Cette modification supprime l'instruction -dontoptimize et permet à R8 de fonctionner correctement.
buildTypes {
release {
isMinifyEnabled = true
isShrinkResources = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
)
}
}Après avoir effectué cette modification, il est utile de consulter vos fichiers de configuration Keep. Ces fichiers indiquent à R8 quelles parties de votre code ne doivent pas être modifiées (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, ciblant spécifiquement les performances de défilement et d'affichage de son flux principal. Cette stratégie a permis d'optimiser entièrement les parcours utilisateur les plus courants : l'ouverture de l'application et le défilement du flux. L'impact sur l'affichage a été considérable : les performances de défilement P90 ont été améliorées de 71% et les performances de défilement P95 de 87%. Le défilement dans l'application est désormais plus fluide qu'auparavant.
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 tous les jours de la semaine (avant d'exécuter nos builds automatiques) et nous validons les dernières modifications une fois l'opération terminée", explique Neumayer.
Suivre l'évolution du Modern Android Development
L'expérience de Monzo montre ce qu'il est possible de faire en restant à jour avec les recommandations d'Android concernant les outils de compilation. 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 de conservation. "Nous ajoutons toujours un commentaire expliquant pourquoi les règles de conservation sont en place, afin de savoir quand nous pouvons les supprimer en toute sécurité", explique Neumayer.
Quels sont les conseils de Neumayer pour les autres équipes ? Vérifiez régulièrement que vos pratiques sont conformes 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 vous lancer et en savoir plus sur R8, consultez https://d.android.com/r8.
-
Études de casGrab est la super-application leader en Asie du Sud-Est. Elle propose des services de livraison, de mobilité et des services financiers à des millions d'utilisateurs dans huit pays via une seule application.
Ajesh Pai, Nguyen Van Minh, Tracy Agyemang • Temps de lecture : 5 min -
Études de casWhatsApp est la plus grande plate-forme de messagerie au monde, avec des milliards d'utilisateurs dans le monde entier. C'est l'outil de communication par défaut pour les personnes de différentes régions, qui connecte les utilisateurs via une messagerie privée, fiable et sécurisée.
Niharika Arora, Tracy Agyemang, Mayank Jain • Temps de lecture : 8 min -
Études de casTinder s'est donné pour mission de favoriser et d'inspirer de vraies rencontres en les rendant faciles et amusantes pour chaque nouvelle génération de célibataires.
Ajesh Pai, Ulises Uriel Verduzco Díaz , Tracy Agyemang • Temps de lecture : 4 min
Recevez chaque semaine les dernières informations sur le développement Android dans votre boîte de réception.