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 forma de medir a eficácia com que seu aplicativo utiliza os recursos do sistema para realizar o que você projetou. 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 storage
  • 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.

Visual Studio Icon Visual Studio Performance Profiler

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 Analyzer Windows Performance Toolkit ícone

Windows Performance Recorder e Windows Performance Analyzer habilitar o monitoramento detalhado e a análise de seu aplicativo e todo o sistema usando Event Tracing for Windows (ETW). Veja os links abaixo sobre como começar.

Ícone do PerfView PerfView

O PerfView é uma ferramenta de monitoramento e análise open source criada pela equipe de .NET para investigar .NET problemas de desempenho. 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.

Nosso roteiro de conteúdo

O desempenho pode ser uma parte complicada do processo de desenvolvimento sem as diretrizes corretas. Garantir que a documentação correta está disponível para desenvolvedores de aplicativos é fundamental para criar aplicativos mais rápidos. O roteiro abaixo detalha as próximas páginas a serem adicionadas a esse conjunto de documentos e a ordem em que elas serão publicadas. Se você vir algo que você gosta ou algo que está faltando, informe-nos no GitHub através dos links de Comentários na parte inferior desta página! Nossa meta é reunir um conjunto de documentos educacionais e completos para a performance do aplicativo que atenda às suas necessidades, portanto, queremos saber o que você acha. Fique à vontade para enviar comentários para esta página abaixo com suas recomendações sobre o que você gostaria que fosse abordado sobre o desempenho dos aplicativos do Windows.

Tópico Descrição
Introdução para as áreas de desempenho Descrições do que o desempenho significa no contexto de CPU, memória, GPU etc.
Como identificar o que medir Dependendo da carga de trabalho, do ambiente e de outros fatores, determinadas áreas de desempenho podem ter mais foco do que outras. Saiba o que e quando medir com este documento
Ciclo de testes de desempenho Conheça o ciclo de vida do teste de desempenho, que inclui a configuração do ambiente de teste, a análise dos resultados e a realização de melhorias no produto
Noções básicas sobre as diferentes ferramentas de desempenho Este documento apresentará mais ferramentas de desempenho, os casos de uso e as práticas recomendadas para usá-los
Estudos de Caso Uma série de cenários de ponta a ponta e os respectivos percursos no ciclo de teste de desempenho