Partilhar via


Que 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 seu tipo de aplicativo. Neste artigo, fornecemos informações para ajudá-lo a encontrar a ferramenta certa para seu cenário e tipo de aplicativo.

Para obter uma abordagem geral para otimizar o código usando as ferramentas de criação de perfil, consulte Estudo de caso: Guia para iniciantes para otimizar o código.

Que ferramenta devo utilizar?

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. • Iniciar uma investigação para problemas gerais de desempenho.
• Investigue o alto uso da CPU do servidor.
• Investigue cenários de DevOps, como quando os pedidos não estão chegando ao site de varejo.
• Otimize o uso da CPU.
• Investigar a latência em chamadas de API.
Gráfico de chama Visualize dentro da ferramenta Uso da CPU que fornece uma visualização alternativa da árvore de chamadas. Investigar a latência em chamadas de API
Caminho quente Visualize dentro da ferramenta Uso da CPU que mostra onde a maior parte do tempo da CPU foi gasto em seu aplicativo. Investigar a latência em chamadas de API
Uso de Memória Mostra a memória do seu aplicativo para encontrar problemas como vazamentos de memória. • Otimize o uso de memória
• Investigar o congelamento da interface do usuário
• Investigar suspeita de vazamento de memória (código nativo)
Alocação de Objetos .NET Mostra onde os objetos .NET são alocados e informações sobre a coleta de lixo. • Otimizar o uso de memória .NET
• Analisar a coleta de lixo
Instrumentação Mostra contagens exatas de chamadas e tempos de chamada. • Você precisa de uma ferramenta como o uso da CPU, mas você quer contagens exatas de chamadas e tempo gasto em funções com base no tempo do relógio de parede.
• Você quer ver o tempo bloqueado, como o tempo gasto esperando por bloqueios.
• Nota: Esta ferramenta requer sobrecarga extra.
Contadores .NET Relatório em tempo real para contadores .NET. • Iniciar uma investigação para problemas gerais de desempenho.
• Você deseja um rastreamento para métricas baseadas em contador do .NET, como exceções por segundo, coleta de lixo e utilização da CPU.
BenchmarkDotNet Relatório para benchmarks com base em BenchmarkDotNet. • Obter diferentes visualizações dos dados coletados do BenchmarkDotNet, como uso de CPU ou alocações de memória, com base no diagnosticador em uso.
E/S de ficheiros Mostra suas operações de E/S de arquivos e quanto tempo elas levam e quantos dados processam. Investigar o congelamento da interface do utilizador
Dicas de Desempenho Mostra uma medição rápida das informações de desempenho enquanto interage com seu código. Durante a depuração, você deseja ver o tempo decorrido entre a operação da etapa anterior (ou ponto de interrupção) para a etapa ou ponto de interrupção atual.
Visualizador de eventos Mostra solicitações HTTP, mensagens de log e exceções. • Investigar latência em chamadas de API
• Investigar aplicativos lentos em execução em um servidor Web remoto
.NET Assíncrono Mostra o uso async/await em aplicativos .NET. Investigue suspeita de problema de desempenho com código assíncrono.
Base de Dados Mostra o desempenho de suas consultas de banco de dados. Investigue o desempenho de consultas de banco de dados que usam o ADO.NET ou o Entity Framework Core.
Utilização da GPU Mostra o uso de hardware de alto nível do seu aplicativo Direct3D. Verifique se o desempenho do seu aplicativo está vinculado à CPU ou à GPU.
Linha do Tempo da Aplicação 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 na renderização de quadros.
IntelliTrace Ferramenta de depuração que permite registar eventos e examinar o estado da aplicação 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.

Que ferramentas são suportadas para o meu projeto?

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

Ferramenta de desempenho .NET C/C++ UWP ASP.NET/ASP.NET Núcleo
Uso da CPU Sim Sim Sim Sim
Uso de Memória Sim Sim Sim Sim
Alocação de Objetos .NET Sim Não Sim Sim
Instrumentação Sim Sim Sim Sim
Contadores .NET sim (somente .NET Core/5+) Não Não sim (apenas ASP.NET Core)
BenchmarkDotNet Sim Não Não linha de código parcialmente executada
E/S de ficheiros Sim Sim Sim Sim
Dicas de Desempenho Sim Sim Sim Sim
Visualizador de eventos Sim Sim Sim Sim
.NET Assíncrono Sim Não Sim Sim
Base de Dados sim (somente .NET Core/5+) Não Não sim (apenas ASP.NET Core)
Utilização da GPU Sim Sim Sim Não
Linha do Tempo da Aplicação sim (XAML) Não Sim Não
do Performance Explorer Não Não Não Não
IntelliTrace .NET apenas com Visual Studio Enterprise Não .NET apenas com Visual Studio Enterprise .NET apenas com Visual Studio Enterprise

O suporte para projetos CMake é o mesmo que C++. Para o uso da CPU, uso da memória, entrada/saída de arquivo e o visualizador de eventos, é possível executar ferramentas de perfilagem no projeto de inicialização. No entanto, para instrumentação e uso da GPU, você deve definir o executável como o destino no Performance Profiler (Alt + F2) selecionando Executável como o projeto de inicialização.

O suporte para projetos CMake é o mesmo que C++. No entanto, você deve definir o executável como o destino no Performance Profiler (Alt + F2) selecionando Executável como o Projeto de Inicialização.

Quais ferramentas são suportadas no Linux?

As seguintes ferramentas são suportadas com Linux ou WSL como plataforma de destino, bem como Windows:

  • Uso da CPU
  • Rastreamento de alocação de objetos .NET
  • .NET Async
  • Contadores .NET
  • BenchmarkDotNet
  • Visualizador de Eventos
  • Base de dados

Aprenda a usar os criadores de perfil

Os seguintes artigos e postagens de blog fornecem mais informações para ajudá-lo a aprender a usar as ferramentas de desempenho do Visual Studio de forma eficaz.