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:
- Consumo de Memoria
- Consumo de Energía
- 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:
- Una disminución en el número de invocaciones a métodos.
- 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.