Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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.
- Estudo de caso: Um guia para iniciantes na otimização de código
- Estudo de caso: isolar um problema de desempenho
- Melhorar o desempenho do Visual Studio com a nova ferramenta de instrumentação
- Estudo de caso: Desempenho duplo em menos de 30 minutos