Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Melhorar o desempenho e os fundamentos do seu aplicativo proporciona uma sensação de polimento e artesanato, enquanto economiza o tempo, o dinheiro, a vida útil da bateria e o esforço de desenvolvimento dos seus clientes. Seu aplicativo consumirá menos energia, melhorando a vida útil da bateria e reduzindo as emissões de carbono. Os aplicativos são executados com mais facilidade em hardwares mais baratos. A produtividade dos seus clientes aumenta.
Esta página fornece uma visão geral das tecnologias e das ferramentas de desenvolvimento para medir, entender e refinar o desempenho dos seus aplicativos do Windows.
Melhorar o desempenho do aplicativo WinUI 3
Para um aplicativo WinUI 3 criado com o SDK do Aplicativo Windows, siga este fluxo de trabalho para melhorar a inicialização e as interações diárias. Use medidas para escolher uma otimização e siga as diretrizes vinculadas para obter detalhes de implementação.
Medir uma linha de base
Escolha um cenário de inicialização e interações frequentes, como navegação ou rolagem, e defina metas de desempenho mensuráveis. Avalie uma criação de lançamento no hardware representativo. Registre a inicialização fria e quente separadamente, inclusive quando o aplicativo se torna significativamente interativo, em vez de apenas quando sua janela é exibida.
Use a análise de desempenho do WinUI 3 para localizar frames de interface do usuário com alto custo e investigar seu consumo de CPU. Se você precisar de ajuda para selecionar um criador de perfil, consulte Escolhendo entre Visual Studio Criador de Perfil de Desempenho e Windows Performance Toolkit.
Melhorar a inicialização
Identifique a inicialização e a criação da interface do usuário que devem ser concluídas antes que o usuário possa interagir com o aplicativo. Adie as tarefas não essenciais e carregue dados adicionais progressivamente, sem considerar um indicador de carregamento como sinal de que a inicialização foi concluída.
Comece com as práticas recomendadas de inicialização do aplicativo WinUI. Se a criação de XAML for um gargalo, siga Otimizar o carregamento XAML para redução de elementos, carregamento adiado e gerenciamento de recursos.
Melhorar a capacidade de resposta e a renderização
Escolha a orientação que corresponde ao gargalo em suas medições:
| Sintoma | Orientação |
|---|---|
| A entrada ou a navegação param enquanto o aplicativo carrega dados ou calcula os resultados | Mantenha a thread da interface do usuário responsiva, incluindo E/S assíncrona, processamento em segundo plano e atualizações na thread da interface do usuário. |
| O layout leva muito tempo, especialmente com modelos repetidos | Otimize o layout XAML para reduzir a estrutura de layout desnecessária. |
| Listas ou grades rolam lentamente ou criam muitos elementos | Otimizar ListView e GridView para virtualização de interface do usuário e modelos de itens menores; usar a virtualização de dados ao carregar os dados em si é o gargalo. |
Meça novamente e evite regressões
Repita os mesmos cenários em condições comparáveis após cada alteração e compare os resultados com sua linha de base. Verifique os tempos de inicialização e interação junto com o uso de memória e CPU: uma melhoria em uma área pode aumentar os custos em outros lugares.
Mantenha as medidas como verificações de regressão para alterações futuras. Use Planejar e medir o desempenho do aplicativo para refinar suas metas e instrumentação à medida que seu aplicativo evolui.
O que é o desempenho do aplicativo e por que ele é importante?
O desempenho é a medida de como seu aplicativo usa efetivamente os recursos do sistema para fazer o que você o projetou para fazer. Ele aborda diferentes aspectos de como seu programa interage com o dispositivo subjacente, incluindo:
- Uso da CPU
- Consumo de memória
- Consumo de energia
- Utilização de rede e armazenamento
- Desempenho de animação
Todas essas propriedades têm um elemento de custo associado a elas: por exemplo, quanto de CPU meu aplicativo usa? Quanto da largura de banda do usuário ele consumirá? Quão rápido essa página específica do meu aplicativo carrega?
Os usuários esperam desempenho como uma propriedade fundamental do software que usam. Eles querem que seus aplicativos sejam responsivos e façam uso eficiente dos recursos do sistema. Aplicativos que apresentam desempenho ruim causam frustração, o que pode levar à redução do envolvimento do usuário. Para fornecer aos seus clientes a melhor experiência possível, é crucial, portanto, tornar o desempenho uma parte regular do fluxo de trabalho de desenvolvimento.
Quando você deve medir o desempenho do aplicativo?
O desempenho do aplicativo pode abranger muitos estágios do processo de desenvolvimento. Ele tem implicações em tudo, desde sua escolha de estrutura de dados até a tecnologia que você escolhe para criar seu aplicativo. Tenha em mente o desempenho enquanto você está desenvolvendo seu aplicativo e planeje realizar testes de desempenho regularmente como parte da atualização e manutenção do seu aplicativo.
Como abordar a medida de desempenho
Aqui estão algumas sugestões de como abordar o teste de desempenho do aplicativo.
- Aproveite seu conhecimento sobre seu aplicativo. Entender os cenários mais comuns para seus usuários permitirá que você gaste seu tempo com sabedoria na otimização das coisas certas. Se você tiver dados disponíveis sobre como os usuários interagem com seu aplicativo, esse será um ótimo momento para analisá-los.
- Onde seus usuários estão gastando a maior parte do tempo?
- Quais são as coisas mais importantes que um cliente fará com seu software?
- Quais são os requisitos de hardware do aplicativo?
- Defina metas de desempenho para seus cenários de usuário mais importantes.
- Seja preciso sobre o que você está tentando otimizar. É CPU? Bateria? Taxa de transferência de rede?
- Selecione as ferramentas que você usará para fazer suas medições.
- Aplique uma mentalidade científica ao testar. Crie parâmetros de comparação em um ambiente controlado. Em seguida, faça sua alteração e repita a medida para ver como suas alterações afetaram o comportamento do aplicativo.
- Adicione testes de regressão ao seu ambiente de teste. Isso garantirá que suas métricas de desempenho não regressem ao longo do tempo.
Métricas de entrelaçamento
Embora você normalmente se concentre em uma área de desempenho durante sua análise, lembre-se de que as áreas geralmente estão entrelaçadas. Uma melhoria em uma área pode desencadear melhorias em outras áreas.
Por exemplo, corrigir o consumo de energia é frequentemente um problema de sincronização. A redução do uso de memória pode resultar na redução do tempo gasto usando a CPU. Também pode haver situações em que recursos adicionais gastos em uma área geram uma melhoria mais impactante em outra área, por exemplo, aumentar o consumo de memória pode diminuir a utilização da rede ou do armazenamento através do cache.
A decisão de fazer uma alteração depende do que é mais importante para seus clientes.
Quais ferramentas posso usar para medir o desempenho do aplicativo?
Há uma variedade de opções diferentes disponíveis para medir o desempenho dos seus aplicativos do Windows.
Se você não tiver certeza de quais ferramentas escolher, confira o artigo: Escolhendo entre Visual Studio Performance Profiler e Windows Performance Toolkit.
Analisador de Desempenho do Visual Studio
Visual Studio disponibiliza ferramentas que ajudam você a monitorar seu aplicativo e fornecer insights dentro do seu código fonte. Visite os recursos abaixo para saber mais sobre como você pode usar essas ferramentas para otimizar seu código diretamente do ambiente de desenvolvimento.
Windows Performance Toolkit
O Windows Performance Recorder e o Windows Performance Analyzer permitem o monitoramento e a análise detalhados do seu aplicativo e de todo o sistema usando o ETW (Rastreamento de Eventos para Windows). Veja os links abaixo sobre como começar.
PerfView
O PerfView é uma ferramenta de monitoramento e análise de código aberto criada pela equipe do .NET para investigar problemas de desempenho do .NET. Devido à capacidade de decodificar símbolos .NET e memória gerenciada, é uma opção ideal para aplicativos gerenciados.
Série de tutoriais sobre o PerfView
SizeBench
O SizeBench é um utilitário que ajuda a investigar e reduzir o tamanho dos seus binários de código nativo compilados (DLLs, EXEs e outros arquivos PE).
Recursos adicionais
Blogs e notícias
Veja os bastidores acessando os blogs de desenvolvedores, escritos por nossos especialistas de desempenho para capacitar a criação da melhor versão do seu aplicativo.
Comunidade e suporte
- Problemas de desempenho no ciclo de compilação-depuração-teste? Relate-os no repositório Windows Dev Performance no GitHub.
Desempenho e sustentabilidade
A engenharia de desempenho cruza diretamente com o movimento de software sustentável. A maioria das redes elétricas consome combustíveis fósseis para gerar eletricidade. Quando seu aplicativo é executado em um computador, ele consome energia incremental que pode ser pequena para um só usuário, mas que se soma à medida que a base de usuários cresce.
Está interessado em aprender como a engenharia de desempenho se relaciona com a sustentabilidade? Confira os Princípios da Engenharia de Software Verde e o blog de Software Sustentável da Microsoft.
Windows developer