Estoy comparando el consumo de recursos de dos aplicaciones de Android.
-
La Aplicación A usa el acelerómetro
-
La Aplicación B utiliza tanto el acelerómetro como el giroscopio
Después de leer estos sensores, estas aplicaciones realizan algún procesamiento en los valores del sensor. Ahora medí su uso de CPU utilizando dumpsys cpuinfo y el comando top. En general, la Aplicación B utiliza de 3 a 4 veces más CPU que la Aplicación A. Los números reales son los siguientes: Estos resultados son para una sola CPU y mi teléfono utiliza una CPU Dual-core 1.2 GHz Cortex-A9 (Samsung Galaxy S2).
Aplicación A (Uso promedio de CPU: 5%)
APP B (Uso promedio de CPU = 20%)
Luego medí el porcentaje de uso de batería para estas dos aplicaciones. Mantuve el teléfono Android en modo Avión y solo una de estas dos aplicaciones se estaba ejecutando en un momento específico. Después de ejecutarlas durante una hora, obtuve los siguientes resultados:
Nivel de batería restante después de una hora de uso:
Modo inactivo: 99%
Ejecutando Aplicación A: 96%
Ejecutando Aplicación B: 93%
Esperaba la misma relación con el nivel de batería como observé con el Uso de CPU. También probé estas aplicaciones en un smartwatch (CPU: Quad-core 1.2 GHz Cortex-A7) y observé una diferencia aún más pequeña en el uso de la batería. Los resultados observados para una hora de uso son los siguientes:
Nivel de batería restante después de una hora de uso:
Modo inactivo: 99%
Ejecutando Aplicación A: 87%
Ejecutando Aplicación B: 85%
Entonces mi pregunta: ¿Por qué la relación del uso de CPU de estas aplicaciones no se refleja en sus niveles de batería restante? ¿O no debería estar el Uso de CPU relacionado linealmente con el uso de la batería? ¿Podría ser que múltiples núcleos estén activos al mismo tiempo, por eso observo una pequeña diferencia entre sus niveles de batería? PS: Uso bloqueo parcial en estas aplicaciones.
1 votos
La frecuencia de la CPU puede jugar un papel aquí. El consumo de energía no es lineal a la frecuencia, y la escalabilidad de la frecuencia depende de la carga. Si B recopila más datos pero tiene que esperarlos con frecuencia, es posible que la escalabilidad de la frecuencia de la CPU no alcance el umbral para la aceleración. -- Esto es, por supuesto, solo una consideración básica de un factor potencial que tiene el potencial de llevar a lo que observas.
0 votos
Está bien.. Mi malentendido. No puedo ayudar con lo que estás preguntando, eso está muy allá de mí. Borrando esa respuesta.
0 votos
Está bien. Espero que haya algún tipo de relación entre los valores de la CPU reportados desde top/dumpsys cpuinfo con la carga de la CPU, pero no puedo encontrar nada al respecto. Es la única forma de explicar la disminución del uso de la CPU cuando la carga de la CPU aumenta. Vamos a ver cómo responden los miembros de la comunidad.
0 votos
Dile algo. El Usuario Mobile Power en este sitio es del equipo de Qualcomm que hizo esas aplicaciones. Intenta buscar su ayuda, ¿tal vez en un chat?
0 votos
Ya tuve algunas conversaciones por correo electrónico con él en su correo electrónico oficial :) Después de todas esas conversaciones, volví a usar estas utilidades en lugar de trepn/app tune kit. Solo tengo curiosidad sobre este comportamiento específico.
0 votos
¡Todo lo mejor entonces :)