Monzo aumenta las métricas de rendimiento hasta un 35% con una simple actualización de R8
Lectura de 2 min
Monzo es un banco digital del Reino Unido con 15 millones de clientes y en crecimiento. A medida que la app crecía, el equipo de ingeniería identificó que el tiempo de inicio de la app era un área fundamental que se debía mejorar, pero le preocupaba que esto requiriera cambios significativos en su base de código.
Al habilitar por completo las optimizaciones de R8, Monzo logró una reducción masiva del 35% en su tasa de errores de aplicación no responde (ANR). Este cambio simple demostró que las optimizaciones de gran impacto no siempre requieren esfuerzos de ingeniería complejos.
Mejoras de rendimiento generales con el modo completo de R8
Monzo identificó el modo completo de R8 como una solución sencilla que valía la pena probar, y funcionó, ya que mejoró el rendimiento en todos los aspectos:
- Confiabilidad de inicio: Los inicios en frío mejoraron un 30%, los inicios semicalientes un 24% y los inicios en caliente un 14%.
- Velocidad de inicio: Los tiempos de inicio del P50 mejoraron un 11% y los del P90, un 12%.
- Eficiencia: El tamaño general de la app se redujo en un 9%.
- Estabilidad: Se redujeron los errores de ANR en un 35%.
Habilita las optimizaciones con un solo cambio
Muchas apps para Android usan un archivo de configuración predeterminado obsoleto que inhabilita la mayor parte de la funcionalidad del optimizador de R8. El principal cambio que hizo Monzo para lograr estas mejoras de rendimiento fue reemplazar el archivo predeterminado proguard-android.txt por proguard-android-optimize.txt. Este cambio quita la instrucción -dontoptimize y permite que R8 realice su trabajo correctamente.
buildTypes {
release {
isMinifyEnabled = true
isShrinkResources = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
)
}
}Después de realizar este cambio, vale la pena revisar tus archivos de configuración de Keep. Estos archivos le indican a R8 qué partes de tu código no debe modificar (por lo general, porque se llaman de forma dinámica o mediante bibliotecas externas). Limpiar las reglas de conservación innecesarias significa que R8 puede hacer más.
Cómo mejorar el rendimiento del desplazamiento con los perfiles de Baseline
Para mejorar aún más la experiencia del usuario, Monzo implementó perfiles de Baseline, que se orientan específicamente al rendimiento del desplazamiento y la renderización en su feed principal. Esta estrategia garantizó que los recorridos del usuario más comunes (abrir la app y desplazarse por el feed) estuvieran completamente optimizados. El impacto en la renderización fue significativo: el rendimiento del desplazamiento del P90 se aceleró un 71% y el del P95 mejoró un 87%. Ahora, el desplazamiento por la app es más fluido que antes.
Monzo incorporó esto en su proceso de lanzamiento para mantener estas mejoras a lo largo del tiempo. "Activamos la generación del perfil de Baseline todos los días de la semana (antes de ejecutar nuestras compilaciones nocturnas) y confirmamos los cambios más recientes una vez que se completan", explica Neumayer.
Mantente al día con Modern Android Development
La experiencia de Monzo demuestra lo que es posible cuando te mantienes al día con las recomendaciones de herramientas de compilación de Android. Si bien las apps heredadas suelen tener dificultades con el uso de la reflexión compleja, Monzo descubrió que la transición era sencilla si documentaban sus reglas de conservación de forma adecuada. "Siempre agregamos un comentario que explica por qué se implementan las reglas de conservación, de modo que sepamos cuándo es seguro quitarlas", señala Neumayer.
¿Cuál es el consejo de Neumayer para otros equipos? Verifica periódicamente tus prácticas en función de los estándares actuales: "Consulta las recomendaciones más recientes de Google sobre el rendimiento de las apps y verifica si estás siguiendo todos los consejos más recientes".
Para comenzar y obtener más información sobre R8, visita https://d.android.com/r8.
-
Casos de éxitoGrab es la superapp líder del sudeste asiático, que ofrece entregas, movilidad y servicios financieros a millones de usuarios en ocho países a través de una sola app.
Ajesh Pai, Nguyen Van Minh, Tracy Agyemang • Lectura de 5 min -
Casos de éxitoWhatsApp es la plataforma de mensajería más grande del mundo, con miles de millones de usuarios en todo el planeta. Es la herramienta de comunicación predeterminada para personas de diversas regiones, ya que conecta a los usuarios a través de mensajes privados, confiables y seguros.
Niharika Arora, Tracy Agyemang, Mayank Jain • Lectura de 8 min -
Casos de éxitoTinder reduce los inicios en frío de la app en un 47% con el nuevo Analizador de configuración de R8
La misión de Tinder es potenciar e inspirar conexiones reales haciendo que conocer gente sea fácil y divertido para cada nueva generación de solteros.
Ajesh Pai, Ulises Uriel Verduzco Díaz , Tracy Agyemang • Lectura de 4 min
Recibe la información más reciente sobre el desarrollo de Android en tu bandeja de entrada todas las semanas.