Compartilhar via


Introdução ao desempenho e aos conceitos fundamentais do aplicativo do Windows

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. Se você estiver escrevendo um aplicativo UWP, consulte também a documentação Desempenho da UWP.

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.

Ícone do Visual Studio 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.

Ícone do Windows Performance Analyzer 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.

Ícone do PerfView 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.

Ícone do SizeBench 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.