Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este tópico descreve como utilizar ferramentas de monitorização de desempenho do Windows Performance Toolkit para produzir perfis de desempenho aprofundados para aplicações WinUI.
Como uso o Windows Performance Recorder para monitorizar aplicações do WinUI?
O Windows Performance Recorder (WPR) pode ser usado para criar gravações detalhadas de Event Tracing for Windows (ETW) sobre o comportamento do sistema, o comportamento das aplicações e o uso de recursos, com base em perfis incorporados. Estas gravações ETW podem então ser processadas pelo Windows Performance Analyzer (WPA) para produzir um conjunto de gráficos e tabelas para um consumo mais fácil e análise aprofundada do uso da CPU, problemas de energia, fraco desempenho do sistema ou da aplicação e outras questões de desempenho.
Observação
Embora existam versões GUI e linha de comando do WPR, este tópico refere-se apenas à versão GUI (consulte Introdução ao WPR para obter mais detalhes sobre ambas as versões).
Perfis WPR
Os perfis WPR são usados para coletar informações sobre vários aspetos e comportamentos do seu aplicativo.
Na imagem a seguir, a janela do Gravador de Desempenho do Windows é mostrada com o perfil "Uso da CPU" (utilização da CPU para cada CPU no sistema) e o perfil "Atividade XAML" (eventos de provedores relacionados a XAML, como WinUI) selecionados.
Como faço para usar o Analisador de Desempenho do Windows com aplicativos WinUI?
WinUI é uma API declarativa, de modo persistente, onde o aplicativo descreve uma árvore de UIElements e o WinUI executa o layout e a renderiza. Isso é feito no thread da interface do usuário em lotes chamados "quadros", que devem ser concluídos rapidamente, idealmente dentro de um intervalo de atualização da exibição. Quando os quadros são longos, isso não apenas atrasa a chegada das atualizações à tela, mas também impede que o thread da interface do usuário manipule a entrada. Quadros lentos, embora não sejam a única razão para problemas de capacidade de resposta, são um dos mais comuns.
Instale o plug-in "Análise de quadros XAML"
WinUI registra eventos ETW que rastreiam o início e a parada de cada quadro (mostrado na captura de tela a seguir da tabela WPA "Eventos genéricos"). No entanto, como a duração de cada quadro precisa ser calculada manualmente, é difícil identificar ocorrências de quadros lentos.
Para resolver este problema, um novo plugin de tabela "XAML Frame Analysis" está incluído com o Windows Assessment Toolkit (ADK) 10.1.26100.1 e posteriores. Esta tabela calcula e mostra a duração de cada quadro (juntamente com outras operações demoradas).
Observação
A tabela "XAML Frame Analysis" requer o Windows Performance Analyzer (WPA) do Windows ADK 10.1.26100.1 ou posterior. A versão do WPR usada para recolher o rastro não importa.
Uma vez instalado o ADK, a tabela "XAML Frame Analysis" deve ser ativada editando o ficheiro de configuração "perfcore.ini" na pasta WPA (tipicamente, C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit). Para fazer isso, feche todas as instâncias abertas do WPA, abra "perfcore.ini" em um editor de texto, adicione perf_xaml.dll à lista de dlls e salve e feche o arquivo. Reinicie o WPA, que agora deve mostrar o gráfico "Análise de quadros XAML" na parte inferior da seção Atividade do sistema.
Utilize o plugin "Análise de Quadros XAML"
A Análise de Quadros Xaml oferece suporte a dois modos de exibição (ambos os modos de exibição mostram as mesmas colunas):
- "Quadros Xaml interessantes" (padrão) - Mostra quadros WinUI com base em heurísticas que identificam aqueles com maior probabilidade de causar problemas de responsividade. Estas regiões correspondem a aquelas que começam com operações como inicialização do WinUI, navegação de frames ou exibição de flyout e param com o final do próximo frame. Esses cenários geralmente envolvem alterações extensas na árvore UIElement e são os mais suscetíveis a problemas de desempenho.
- "All Xaml Info" - Mostra todos os frames WinUI de todos os processos encontrados no rastreio. Para operações como um quadro ou um passo de layout, o plug-in calcula e exibe automaticamente as durações com base nos eventos Start e Stop.
A captura de tela a seguir destaca como alternar entre modos de exibição de Análise de Quadros Xaml.
Ambos os modos de exibição de Análise de Quadro Xaml incluem as seguintes colunas:
| Título | Value |
|---|---|
| Processo | Nome e ID do processo |
| Identificador de Thread | Identificador de Thread |
| Tipo | Descreve o evento correspondente à linha. Os valores possíveis incluem:
|
| ÉInteressante | Se a fila é considerada interessante. Apenas linhas relevantes aparecem na vista Quadros XAML Interessantes. |
| Duração (ms) | A duração da linha. Calculado a partir dos eventos Start e Stop. |
| Peso (ms) | O tempo de execução real da CPU correspondente ao período de tempo. |
| Início(s) | A hora do evento de Início |
| Paragem(ões) | A hora do evento Stop |
As colunas podem ser classificadas por Tipo ou Duração para ajudar a identificar possíveis problemas, como os frames mais caros e com maior duração no traço (consulte a imagem a seguir). Você também pode aprofundar-se em linhas individuais para identificar as operações dispendiosas e as potenciais otimizações.
Windows developer