Compartir por


Mejorar el consumo de energía y la duración de la batería minimizando el trabajo en segundo plano

En esta guía se muestra cómo mejorar la forma en que la aplicación de Windows consume energía, ofreciendo principios que le ayudarán a mejorar el rendimiento general de los dispositivos y la duración de la batería.

Los principios más básicos para mejorar el consumo de energía son asegurarse de que mientras la aplicación está en segundo plano, no:

  • usar recursos del sistema,
  • reactivar la CPU a través de temporizadores,
  • reactivar la CPU esperando los eventos vsync.

Ser "en segundo plano" significa que la aplicación no es visible ni audible para el usuario. Debe haber pocas razones para reactivar la CPU o utilizar los recursos del sistema en segundo plano. Comprobar si la aplicación desencadena estos eventos y abordar la causa puede mejorar significativamente el consumo de energía de la aplicación, la duración de la batería y reducir las emisiones de carbono que darán lugar a que los clientes usen la aplicación.

Para comprobar que la CPU no se está despertando para realizar un trabajo innecesario mientras la aplicación no está en uso, puedes capturar y analizar un seguimiento mediante el Analizador de rendimiento de Windows (WPA). Le guiaremos por los pasos que explican cómo hacerlo a continuación.

Capturar una traza y comprobar si hay trabajo innecesario

Es importante configurar las condiciones correctas al ejecutar la aplicación antes de capturar un seguimiento para analizar si se está realizando un trabajo innecesario que puede purgar energía. También puede que quiera ejecutar varios seguimientos para probar la aplicación en una variedad de condiciones.

Configuración

  1. Para que el dispositivo de prueba esté inactivo, abra el Administrador de tareas y asegúrese de que el uso de la CPU sea inferior a 5%. Al hacerlo, se minimizarán las interferencias de medición y se obtendrán trazas de tamaño razonable.

  2. Inicie la aplicación y vaya a una vista que se espera que se use con frecuencia.

  3. Minimice la aplicación. *Es posible que quiera repetir los pasos siguientes mientras la ventana de la aplicación está totalmente ocluida (bloqueada desde la vista) detrás de otras ventanas y cuando la aplicación está en primer plano, después de un período de ninguna interacción por parte del usuario, para asegurarse de que la aplicación no inicia el trabajo innecesario.

Medición y evaluación del uso de LA CPU en segundo plano

  1. Abra una línea de comandos (PowerShell o símbolo del sistema) en modo de administrador. (Si no se ejecuta en modo de administrador, puede recibir código de error: 0xc5585011, "No se pudo habilitar la directiva para generar perfiles del rendimiento del sistema").

  2. Escriba el comando: wpr -start power -filemode

  3. Deje el dispositivo inactivo durante 5 minutos.

  4. Escriba el comando: wpr -stop idletrace.etl

  5. Para abrir el seguimiento mediante el Analizador de rendimiento de Windows (WPA), escriba el comando : wpa.exe idletrace.etl

  6. Abra el gráfico de cálculo>Uso de CPU (preciso)

    • Vaya a su proceso (o si tiene un modelo multiproceso, a todos los procesos relacionados con su aplicación) y evalúe el recuento de Cswitch, "Uso de la CPU". Lo ideal es que estén lo más cerca posible de 0 mientras la aplicación está en segundo plano. Examinar los conjuntos es una excelente manera de encontrar dónde se usan los recursos y cómo mejorarlos.

    • Busque reactivaciones excesivas agregando una "Nueva pila de subprocesos" para ver en qué pila se despertó el subproceso.

    Gráfico WPA que muestra el proceso de CPU, el recuento y el porcentaje de uso

  7. Abra el gráfico de Computación>Uso de CPU (muestreado). Realice un seguimiento de los problemas de uso de CPU mediante la evaluación de dónde se está empleando el tiempo del código en su ejecución.

Medir y evaluar la espera de vsync mientras está en segundo plano

Nota:

Céntrese en el uso básico de la CPU en la sección anterior antes de investigar este escenario más avanzado.

  1. Abra una línea de comandos (PowerShell o símbolo del sistema) en modo de administrador.

  2. Escriba el comando: wpr -start gpu -filemode

  3. Deje el dispositivo inactivo durante 5 minutos.

  4. Escriba el comando: wpr -stop gputrace.etl

  5. Para abrir el seguimiento mediante el Analizador de rendimiento de Windows (WPA), escriba el comando : wpa.exe gputrace.etl

  6. Abra el gráficoEventos genéricos> del sistema.

    • Filtre por eventos "Microsoft-Windows-Dxgkrnl".
    • Arrastre la columna Proceso para que sea la segunda columna.
    • Verifique si está llamando a WaitForVsync. Por ejemplo, mediante API como IDXGIOutput::WaitForVBlank (dxgi.h) con el WaitForVerticalBlankEventInternal evento.

    Gráfico WPA que muestra el evento webview2 de MS Edge

Para obtener más información, consulte el artículo Uso del Analizador de rendimiento de Windows para analizar los problemas de espera modernos.

Recursos adicionales