19 votos

Cómo calcula Apple el consumo de energía de un proceso en OS X Mavericks

En OS X Mavericks puedes monitorizar el consumo de energía de diferentes procesos en el Monitor de Actividad. Activity Monitor showing the Energy Impact columns Aquí podemos ver "Impacto energético" y "Impacto energético medio" y que los valores pueden superar el 100.

También habrá un icono en la barra de menús que enumera las aplicaciones que más energía consumen en este momento.

¿Hay alguna documentación sobre cómo calcula Apple el consumo de energía actual? ¿Existe una correspondencia entre la utilización de la CPU y el consumo de energía?

Ojalá haya aquí algún experto que pueda darme una pista.

2voto

Bill Mei Puntos 165

El número parece provenir del programa top . He encontrado la siguiente entrada del blog que investiga este cálculo con mucho más detalle: https://blog.mozilla.org/nnethercote/2015/08/26/what-does-the-os-x-activity-monitors-energy-impact-actually-measure/

En todos los casos, el "impacto energético" del monitor de actividad fue el mismo que top de la medida POWER. Todo indica que los dos se calculan de forma idéntica en esta máquina.

Desde top es de código abierto, podemos investigar una fórmula/código real de cómo se calcula este número, y la entrada del blog lo resume así:

|elapsed_us| is the length of the sample period
|used_us| is the time this process was running during the sample period

%CPU = (used_us * 100.0) / elapsed_us

POWER = if is_a_kernel_process()
          0
        else
          ((used_us + IDLEW * 500) * 100.0) / elapsed_us

Como indica @Ruskes, el cálculo se basa en los despertares de su proceso medidos a nivel de milisegundos. En la entrada del blog se menciona que:

El cálculo de la POTENCIA es una función de la CPU y del IDLEW. Es básicamente lo mismo que %CPU pero con un "impuesto" de 500 microsegundos por cada wakeup y una excepción para los procesos del kernel. El valor de esta función puede superar fácilmente el 100 -por ejemplo, un programa con un uso nulo de la CPU y 3.000 despertares por segundo tendrá una puntuación de POWER de 150- por lo que no es un porcentaje. De hecho, el POWER es una medida sin unidades porque es una combinación semi-arbitraria de dos medidas con unidades incompatibles.

Así que, esencialmente, puedes pensar en el número como una medida de los despertares de la CPU.

1voto

Rob W Puntos 1036

Hay muchos aspectos de la utilización de la CPU que afectan al consumo de energía. No se trata simplemente de la cantidad de CPU que consume una aplicación, sino también de la frecuencia y la flexibilidad con que lo hace. Esto último puede tener un efecto mucho mayor.

Una aplicación que necesita despertarse exactamente cada 10ms para ejecutar sólo unas pocas líneas de código Obj-C simple puede tener un orden de magnitud mayor de impacto energético que la misma aplicación ejecutando miles de líneas de código pero sólo una vez por segundo y sin ser muy particular acerca de cuándo exactamente dentro de ese segundo ocurrirá el cálculo.

Probablemente Apple utilice los contadores de rendimiento de Intel y los contabilice en su aplicación. Probablemente obtendrás más información si sigues primero los manuales de Intel para entender los estados de potencia y la gestión de la energía. Esto variará mucho entre arquitecturas. Una aplicación que se comporta mal puede tener un impacto mucho mayor en Haswell que en una máquina "vieja" Core 2.

El uso de otros recursos, como el sistema de audio, la realización de E/S de disco o el uso de dispositivos USB, también puede tenerse en cuenta. Un método de contabilidad probable sería asignar a tu aplicación todo el uso de energía que necesitan los recursos que tu aplicación utiliza exclusivamente (por ejemplo, un dispositivo USB personalizado, el acceso a un sistema de audio que de otro modo estaría apagado), y hacer algún tipo de prorrateo para el hardware compartido.

1voto

Buscar웃 Puntos 23467

Todo comienza con la supervisión y las mediciones de precisión en milisegundos.

Como ejemplo, Intel ha creado una herramienta para supervisar los parámetros de la CPU de Intel.

Muestra la potencia, la frecuencia y la temperatura.

El uso de la energía y la temperatura son productos de la frecuencia (la velocidad), o la cantidad de datos procesados.

La tasa de muestreo es de milisegundos y la potencia está en vatios, y mide la potencia total de la CPU mientras que el monitor de actividad la desglosa por aplicación/proceso.

Intel

Aquí hay una artículo de Apple sobre la gestión/consumo de energía que entra en un poco más de detalles sobre cómo se gestiona la energía.

En resumen, utilizando la medición de la potencia en ms se puede controlar mejor el consumo general de energía.

Antes del TC

before

Utilizando la información anterior sobre cada aplicación y el uso acumulado de energía resultante, Apple ha implementado las funciones Timer Coalescing y App Nap para gestionar el consumo de energía, lo que da como resultado el siguiente gráfico.

Después del TC

after

Para ver más información sobre los gráficos anteriores visite este artículo .

Ya que la actividad de control de la CPU incluye la gestión de la memoria RAM y la lectura/escritura del disco, la tarjeta de red y otros, por ejemplo, mejorando Gestión de la memoria RAM también reduce el consumo de energía que se produce por la frecuente actividad de R/W del disco.

Hay muchos aspectos de la gestión de la energía, y son una combinación de mediciones muy precisas y diseños de software para reducir el consumo de energía.

Algunos ejemplos son:

Función de siesta de la aplicación

Función de coalescencia del temporizador PDF

Función de gestión de la memoria RAM

1 votos

@grgarside Las imágenes parecen proceder de los sitios enlazados en las respuestas. No obstante, no estaría de más indicar explícitamente la fuente de cada imagen.

1 votos

@patrix- hecho, mostró las fuentes para todo :)

0voto

M K Puntos 8307

No parece haber ninguna documentación sobre cómo se calcula el consumo de energía. El uso de la CPU por sí solo no puede predecir de forma fiable el consumo de energía. Así que los principales factores considerados serían (estos son algo complementario a lo que App Nap mira y controla):

  • Uso de la CPU
  • Entrada/salida de disco
  • Entrada/salida de la red
  • Uso de periféricos (como altavoces de audio, por ejemplo)

De nuevo, no hay detalles sobre cómo se mide cada uno de estos factores y las fórmulas utilizadas para calcular el consumo de energía. Podemos hacer algunas conjeturas por el hecho de que todos los Mac (y también los PC) vienen equipados con varios sensores dentro del sistema. Puedes utilizar una herramienta como Monitor de hardware para ver qué sensores tiene tu Mac y qué informan en tiempo real.

Los principales sensores relacionados con el consumo de energía que están disponibles (y desde hace varios años) en Monitor de hardware son el voltaje de la CPU, la corriente de la CPU y la potencia de la CPU. Para otros elementos de la lista anterior, no hay sensores de hardware para medir el consumo de energía. Por tanto, Apple debe utilizar factores de extrapolación específicos en función del modelo de Mac y del hardware subyacente.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X