Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este guia demonstrará como melhorar a maneira como seu aplicativo do Windows consome energia, oferecendo princípios para ajudá-lo a melhorar o desempenho geral do dispositivo e a vida útil da bateria.
Os princípios mais básicos para melhorar o consumo de energia são garantir que, enquanto seu aplicativo estiver em segundo plano, ele não:
- utilizar os recursos do sistema,
- despertar a CPU através de temporizadores,
- despertar a CPU aguardando eventos de vsync.
Estar "em segundo plano" significa que seu aplicativo não é visível, nem audível, para o usuário. Deve haver poucas, se houver, razões para despertar a CPU ou utilizar recursos do sistema enquanto em segundo plano. Verificar se seu aplicativo está acionando esses eventos e abordar a causa pode melhorar significativamente o consumo de energia, a vida útil da bateria e a reduzir as emissões de carbono resultantes do uso do aplicativo.
Para verificar se a CPU não está acordando para fazer trabalhos desnecessários enquanto seu aplicativo não está em uso, você pode capturar e analisar um rastreamento usando Windows Performance Analyzer (WPA). Percorreremos as etapas explicando como fazê-lo abaixo.
Recolha um registo e verifique se há trabalho desnecessário
É importante configurar as condições corretas ao executar seu aplicativo antes de capturar um rastreamento para analisar se está sendo executado trabalho desnecessário que pode drenar energia. Você também pode querer executar vários rastreamentos para testar seu aplicativo em várias condições.
Configuração
Coloque seu dispositivo de teste ocioso abrindo o Gerenciador de Tarefas e garantindo que a utilização da CPU seja inferior a 5%. Isso minimizará a interferência na medição e fornecerá traços de tamanho razoáveis.
Inicie a sua aplicação e navegue até uma visualização que se espera ser frequentemente usada.
Minimize seu aplicativo. *Você pode querer repetir as etapas a seguir enquanto a janela do aplicativo estiver totalmente ocluída (bloqueada da visualização) atrás de outras janelas e quando o aplicativo estiver em primeiro plano, após um período sem interação do usuário, para garantir que o trabalho desnecessário não esteja sendo iniciado pelo aplicativo.
Meça e avalie o uso da CPU em segundo plano
Abra uma linha de comando (PowerShell ou Prompt de Comando) em modo de administrador . (Se não for executado no modo de administração, poderá receber o código de erro: 0xc5585011, "Falha ao ativar a política para criar o perfil de desempenho do sistema.")
Digite o comando:
wpr -start power -filemodeDeixe o dispositivo inativo durante 5 minutos.
Digite o comando:
wpr -stop idletrace.etlPara abrir o rastreamento usando Windows Performance Analyzer (WPA), digite o comando:
wpa.exe idletrace.etlAbra o gráfico Computação>Uso de CPU (Preciso).
Navegue até aos seus processos (ou, se tiver um modelo de múltiplos processos, todos os processos do seu aplicativo) e avalie a contagem do Cswitch , "Utilização por CPU". Idealmente, estes são o mais próximo possível de 0 enquanto o aplicativo está em segundo plano. Olhar para as pilhas de dados é uma ótima maneira de encontrar onde os recursos estão a ser utilizados e como otimizar o seu uso.
Procure despertares excessivos adicionando uma "New Thread Stack" para ver em qual pilha o thread acordou.
Abra o gráfico Computação>Uso da CPU (Amostrado). Rastreie problemas de uso da CPU avaliando onde o tempo no código está sendo gasto na execução.
Meça e avalie a espera do vsync enquanto está em segundo plano
Observação
Concentre-se no uso básico da CPU na seção anterior antes de investigar esse cenário mais avançado.
Abra um de linha de comando
(PowerShell ou Prompt de Comando) no modo de administrador. Digite o comando:
wpr -start gpu -filemodeDeixe o dispositivo inativo durante 5 minutos.
Digite o comando:
wpr -stop gputrace.etlPara abrir o rastreamento usando Windows Performance Analyzer (WPA), digite o comando:
wpa.exe gputrace.etlAbra o gráfico de Eventos Genéricosdo Sistema de Atividade >.
- Filtrar eventos "Microsoft-Windows-Dxgkrnl".
- Arraste a coluna Processo para se tornar a 2ª coluna.
- Verifique se você está ligando para WaitForVsync. Por exemplo, por meio de APIs como IDXGIOutput::WaitForVBlank (dxgi.h) através do evento
WaitForVerticalBlankEventInternal.
de eventos do MS Edge webview2
Para saber mais, consulte o artigo Usando o Analisador de Desempenho do Windows para analisar problemas do Modo de Espera Moderno.
Recursos adicionais
Windows developer