Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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 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 análise de desempenho, consulte Estudo de caso: Guia do Iniciante para a Otimização de 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 sobre problemas gerais de desempenho. • Investigar o alto uso da CPU do servidor. • Investigar cenários de 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. |
| Flame Graph | Exibir dentro da ferramenta Uso da CPU que fornece uma visualização alternativa da árvore de chamadas. | Investigar a latência em chamadas à API |
| Caminho crítico | Visualização na ferramenta de uso da CPU que mostra onde a maior parte do tempo de CPU foi consumido em seu aplicativo. | Investigar a latência em chamadas à API |
| Uso de Memória | Mostra a memória do aplicativo para encontrar problemas como vazamentos de memória. | • Otimizar 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 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 a coleta de lixo |
| Instrumentação | Mostra as contagens exatas de chamadas e os horários de chamada. | • Você precisa de uma ferramenta como o uso da CPU, mas deseja contar chamadas exatas e o tempo gasto em funções com base no tempo do relógio de parede. • Você deseja ver o tempo bloqueado, como o tempo gasto aguardando bloqueios. • Observação: essa ferramenta requer sobrecarga extra. |
| Contadores do .NET | Relatório dinâmico de métricas do .NET. | • Inicie uma investigação sobre 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 parâmetros de comparação com base no BenchmarkDotNet. | • Obtenha visualizações diferentes dos dados coletados do BenchmarkDotNet, como uso da CPU ou alocações de memória, com base no diagnosticador em uso. |
| Entrada/Saída de Arquivo | Mostra suas operações de E/S de Arquivo e quanto tempo elas levam e quantos dados eles 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 da etapa anterior (ou ponto de interrupção) e a etapa ou o ponto de interrupção atual. |
| 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 |
| Assíncrono do .NET | Mostra o uso de async/await em aplicativos .NET. | Investigue o suposto problema de desempenho com código assíncrono. |
| 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 o Entity Framework Core. |
| Utilização de GPU | Mostra o uso de hardware de alto nível do seu aplicativo Direct3D. | Verifique se o desempenho do aplicativo está associado à CPU ou à GPU. |
| Cronograma 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 depuração que permite registrar 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 no estado atual do aplicativo. |
Quais ferramentas têm suporte para 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á-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 |
| Contadores do .NET | sim (somente .NET Core/5+ ) | Não | Não | sim (somente ASP.NET Core) |
| BenchmarkDotNet | sim | Não | Não | parcial |
| Entrada/Saída de Arquivo | sim | sim | sim | sim |
| PerfTips | sim | sim | sim | sim |
| visualizador de eventos | sim | sim | sim | sim |
| Assíncrono do .NET | sim | Não | sim | sim |
| Banco de dados | sim (somente .NET Core/5+ ) | Não | Não | sim (somente ASP.NET Core) |
| Utilização de GPU | sim | sim | sim | Não |
| Cronograma do Aplicativo | sim (XAML) | Não | sim | Não |
| Gerenciador de Desempenho | Não | Não | Não | Não |
| IntelliTrace | .NET somente com o Visual Studio Enterprise | Não | .NET somente com o Visual Studio Enterprise | .NET somente com o Visual Studio Enterprise |
O suporte para projetos do CMake é igual ao C++. Para uso de CPU, uso de memória, E/S de arquivo e visualizador de eventos, você pode executar ferramentas de criação de perfil no projeto de inicialização. No entanto, para instrumentação e uso de GPU, você deve definir o executável como o destino no Criador de Perfil de Desempenho (Alt + F2) selecionando Executável como o Projeto de Inicialização.
O suporte para projetos do CMake é igual ao C++. No entanto, você deve definir o executável como o destino no Perfilador de Desempenho (Alt + F2) selecionando Executável como o Projeto de Inicialização.
Quais ferramentas têm suporte no Linux?
As ferramentas a seguir têm suporte com Linux ou WSL como a plataforma de destino, bem como o Windows:
- Uso da CPU
- Rastreamento de alocação de objeto .NET
- .NET Async
- Contadores do .NET
- BenchmarkDotNet
- Visualizador de Eventos
- Base de dados
Saiba como usar os criadores de perfil
Os artigos e postagens de blog a seguir fornecem mais informações para ajudá-lo a aprender a usar as ferramentas de desempenho do Visual Studio com eficiência.
- Estudo de caso: guia do iniciante para otimizar o código
- Estudo de caso: isolar um problema de desempenho
- melhorando o desempenho do Visual Studio com a nova ferramenta de instrumentação
- estudo de caso : desempenho duplo em menos de 30 minutos