Qual ferramenta de desempenho devo usar? (C#, Visual Basic, C++, F#)

O Visual Studio fornece uma variedade de ferramentas de criação de perfil para ajudá-lo a diagnosticar diferentes tipos de problemas de desempenho do aplicativo, dependendo do tipo do aplicativo. Neste artigo, fornecemos informações para ajudar você a encontrar a ferramenta certa para seu cenário e tipo de aplicativo.

Para obter uma abordagem geral sobre como otimizar o código ao usar as ferramentas de criação de perfil, confira Guia para iniciantes sobre como otimizar o código.

Qual ferramenta devo usar?

A tabela a seguir lista as diferentes ferramentas que o Visual Studio oferece e fornece cenários comuns para escolher a ferramenta.

Ferramenta de Desempenho Descrição Quando usar a ferramenta?
Uso da CPU Mostra onde a CPU está gastando tempo. • Inicie uma investigação para problemas gerais de desempenho.
• Investigar o alto uso da CPU do servidor.
• Investigar cenários DevOps, como quando os pedidos não estão chegando ao site de varejo.
• Otimizar o uso da CPU.
• Investigar a latência em chamadas à API.
Grafo de chama Exibir dentro da ferramenta Uso da CPU que fornece uma visualização alternativa da árvore de chamadas. Investigar a latência em chamadas à API
Afunilamento Exibir dentro da ferramenta Uso da CPU que mostra onde a maior parte do tempo de CPU foi gasto em seu aplicativo. Investigar a latência em chamadas à API
Uso de Memória Mostra a memória do aplicativo para encontrar problemas como perdas de memória. • Otimizar o uso de memória
• Investigar congelamento da interface do usuário
• Investigar suspeita de vazamento de memória (código nativo)
Alocação de objeto .NET Mostra onde os objetos .NET são alocados e informações sobre a coleta de lixo. • Otimizar o uso de memória do .NET
• Analisar coleta de lixo
Instrumentação Mostra as contagens exatas de chamadas e os horários de chamada. Você precisa de uma ferramenta como Uso da CPU, mas deseja contagens exatas de chamadas e resultados com base no tempo do relógio de parede. Essa ferramenta requer sobrecarga extra.
E/S do arquivo Mostra suas operações de E/S de Arquivo e quanto tempo elas levam e quantos dados processam. Investigar o congelamento da interface do usuário
PerfTips Mostra uma medição rápida das informações de desempenho ao interagir com seu código. Durante a depuração, você deseja ver o tempo decorrido entre a operação de etapa anterior (ou ponto de interrupção) para a etapa atual ou o ponto de interrupção.
Visualizador de Eventos Mostra solicitações HTTP, mensagens de log e exceções. • Investigar a latência em chamadas à API
• Investigar o aplicativo lento em execução em um servidor Web remoto
.NET Async Mostra o uso assíncrono/de espera em aplicativos .NET. Investigar a suspeita de problema de desempenho com código assíncrono.
Contadores do .NET Visualização para contadores .NET. Você deseja uma visualização para métricas baseadas em contador do .NET, como exceções por segundo, coleta de lixo e utilização da CPU.
Backup de banco de dados Mostra o desempenho das consultas de banco de dados. Investigue o desempenho de consultas de banco de dados que usam ADO.NET ou Entity Framework Core.
Uso de GPU Mostra o uso de hardware de alto nível do aplicativo Direct3D. Verifique se o desempenho do aplicativo está associado à CPU ou à GPU.
Linha do tempo do aplicativo Mostra o desempenho da interface do usuário para aplicativos XAML. Investigue o desempenho da interface do usuário em aplicativos XAML, como o tempo gasto para renderizar quadros.
IntelliTrace Ferramenta de depurador que permite registrar eventos e examinar o estado do aplicativo em vários pontos de execução. Você deseja que uma ferramenta examine o estado do aplicativo em vários pontos, não apenas o estado atual do aplicativo.

Quais ferramentas têm compatibilidade com meu projeto?

A tabela a seguir que lista as diferentes ferramentas que o Visual Studio oferece e os diferentes tipos de projeto com os quais você poderá usá-las:

Ferramenta de Desempenho .NET C/C++ UWP ASP.NET/ASP.NET Core
Uso da CPU sim sim sim sim
Uso de Memória sim sim sim sim
Alocação de objeto .NET sim não sim sim
Instrumentação sim sim sim sim
E/S do arquivo sim sim sim sim
PerfTips sim sim sim sim
Visualizador de Eventos sim sim sim sim
.NET Async sim não sim sim
Contadores do .NET sim (somente no .NET Core/5+) não não sim (somente no ASP.NET Core)
Backup de banco de dados sim (somente no .NET Core/5+) não não sim (somente no ASP.NET Core)
Uso de GPU sim sim sim não
Linha do tempo do aplicativo sim (XAML) não sim não
Performance Explorer não não não não
IntelliTrace .NET com Visual Studio Enterprise somente não .NET com Visual Studio Enterprise somente .NET com Visual Studio Enterprise somente

As seguintes ferramentas têm suporte com o Linux como a plataforma de destino, bem como o Windows:

  • Uso da CPU
  • Rastreamento de alocação de objeto .NET
  • .NET Async
  • Contadores do .NET
  • Visualizador de Eventos
  • Backup de banco de dados

Aprenda a usar os criadores de perfil

Os artigos e as postagens no blog apresentados a seguir fornecem mais informações para ajudar você a aprender a usar as ferramentas de desempenho do Visual Studio de maneira efetiva.