perfilamiento de la aplicacion - jphernandezr1/MISW-4203-Vinilos GitHub Wiki

Introducción

Para esta prueba de perfilamiento, se medirá el uso de recursos y el desempeño general de la aplicación. El objetivo es obtener datos y gráficas que sean comparables tanto entre sí como entre diferentes Sprints de desarrollo.

Escenario de Prueba

Para asegurar la consistencia de los datos, la prueba seguirá la siguiente ruta de navegación:

Catálogo de Álbumes → Lista de Collectors → Vista detallada de Collector

Metodología

La navegación se realizará en tres dispositivos físicos utilizando la opción "Profile 'app' with complete data" de Android Studio.

Las métricas principales que se obtendrán son:

  1. Consumo de Memoria
  2. Consumo de Energía
  3. Uso de CPU

Dispositivos y Especificaciones

Se utilizaron los siguientes dispositivos físicos para la recolección de datos:

ID Dispositivo Marca / Modelo Memoria RAM Sistema Operativo CPU Batería
1 Nokia G50 4 GB Android 11 Qualcomm Snapdragon 480 5000 mAh
2 Xiaomi Poco X7 Pr 8 GB Android 12 MediaTek Dimensity 8400 6000 mAh

Comprender Resultados Obtenidos

Comportamiento General de la vista de inicio (Catalogo de Albumes)

ID Antes Después
1.

Uso de CPU

Marcado con lineas rojas se observa los picos de uso de CPU, estos picos son causados al cambiar de pantalla.

ID Antes Después
1.
ID AVG Uso de CPU - Antes AVG Uso de CPU - Después
1. 4% 1 %
1. 5% 1 %

Es notable que después de la implementación de micro optimizaciones también optimiza el uso de CPU. Esta reducción se atribuye a dos factores clave:

  1. Una disminución en el número de invocaciones a métodos.
  2. La eliminación de librerías que no estaban en uso.

Uso de Memoria

ID Antes Después
1.
ID AVG Uso de Memoria - Antes AVG Uso de Memoria - Después
1. 96 GiB 98 GiB
1. 89 GiB 92 GiB

Conclusiones del Análisis de Perfilamiento

Después de realizar las pruebas de perfilamiento comparativo, se establecen las siguientes conclusiones sobre el rendimiento de la aplicación y el impacto de las micro optimizaciones:

Impacto Directo de las Micro optimizaciones

Mejora de Recursos: Las microoptimizaciones implementadas generaron mejoras medibles en el desempeño, específicamente en el uso de memoria y, de forma ligera, en el uso de CPU.

Fragmentación y Comportamiento del Dispositivo

  • La gama (o costo) del dispositivo afecta de forma determinante el comportamiento de la aplicación y la experiencia de usuario.

  • La fragmentación del ecosistema Android, incluso entre versiones con el mismo código base, es un factor determinante en el comportamiento de la aplicación.

Limitantes en los Resultados

Algunas optimizaciones clave y medibles (como la implementación de Corrutinas) fueron integradas tempranamente en el proceso de desarrollo. Debido a que el código ya partía de una base funcional y parcialmente optimizada, esto pudo haber mitigado la obtención de mejores resultados en la etapa de microoptimización final.