Partilhar via


Primeira olhada nas ferramentas de criação de perfil (C#, Visual Basic, C++, F#)

As ferramentas de medição de desempenho de aplicativos são essenciais para desenvolvedores que desejam otimizar seu código e melhorar o desempenho do aplicativo. O Visual Studio oferece uma variedade de ferramentas de criação de perfil e diagnóstico que podem ajudá-lo a diagnosticar o uso de memória e CPU e outros problemas no nível do aplicativo. Com essas ferramentas, você pode acumular dados de desempenho enquanto executa seu aplicativo. Uma ferramenta de profiling pode ajudá-lo a tomar decisões informadas rapidamente, fornecendo uma representação visual dos tempos de execução e da utilização da CPU para a sua aplicação. Neste artigo, damos uma olhada rápida nas ferramentas de criação de perfil mais comuns.

Para obter ajuda com a escolha da ferramenta correta ou para ver o suporte à ferramenta de criação de perfil para diferentes tipos de aplicativos, consulte Qual ferramenta devo usar? Para obter um tutorial que mostra 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.

Meça o desempenho em compilações de versão

As ferramentas destinadas a fornecer análise para compilações do Release estão no Performance Profiler. Na Performance Profiler, você pode coletar informações de diagnóstico enquanto o aplicativo está em execução e, em seguida, examinar as informações coletadas depois que o aplicativo for interrompido (uma análise post-mortem).

Abra o Performance Profiler escolhendo Debug>Performance Profiler (ou Alt + F2).

Captura de tela do Performance Profiler.

Captura de tela do Performance Profiler.

Para obter mais informações sobre como usar as ferramentas de Uso da CPU e Uso da memória no Performance Profiler em comparação com as ferramentas integradas ao depurador, consulte Executar ferramentas de criação de perfil em compilações de versão ou de depuração.

As ferramentas disponíveis no Performance Profiler incluem:

Para ver o suporte à ferramenta de criação de perfil para diferentes tipos de aplicativos, consulte Qual ferramenta devo usar?.

Em alguns cenários, a janela permite que você selecione várias ferramentas de criação de perfil. Ferramentas como o Uso da CPU podem fornecer dados complementares que você pode usar para ajudar na sua análise. Você também pode usar o criador de perfil de linha de comando para habilitar cenários que envolvem o uso de várias ferramentas de criação de perfil.

Meça o desempenho durante a depuração

As ferramentas de criação de perfil que você pode acessar durante uma sessão de depuração estão disponíveis na janela Ferramentas de diagnóstico. A janela Ferramentas de diagnóstico aparece automaticamente, a menos que você a tenha desativado. Para abrir a janela, clique em Depurar / Windows / Mostrar ferramentas de diagnóstico (ou pressione Ctrl + Alt + F2). Com a janela aberta, você pode selecionar ferramentas para as quais deseja coletar dados.

Janela de Ferramentas de Diagnóstico

Durante a depuração, pode-se usar a janela Ferramentas de Diagnóstico para analisar a CPU, o uso da memória, os contadores do .NET e visualizar eventos que mostram informações relacionadas ao desempenho.

janela Ferramentas de diagnóstico

Durante a depuração, você pode usar a janela Ferramentas de Diagnóstico para analisar o uso da CPU e da memória e pode exibir eventos que mostram informações relacionadas ao desempenho.

Resumo das Ferramentas de Diagnóstico: Modo de Exibição

Resumo do modo de exibição das Ferramentas de Diagnóstico

A janela Ferramentas de Diagnóstico é uma maneira comum de analisar o desempenho de aplicações, mas para compilações de versão pode também fazer análise post-mortem do seu aplicativo. Para obter mais informações sobre diferentes abordagens, consulte Executar ferramentas de criação de perfil em compilações de lançamento ou depuração. Para ver o suporte à ferramenta de criação de perfil para diferentes tipos de aplicativos, consulte Qual ferramenta devo usar?.

As ferramentas disponíveis na janela Ferramentas de diagnóstico ou durante uma sessão de depuração incluem:

Dica

Use o relançamento para ignorar a página de lançamento e executar automaticamente com as suas configurações anteriores pressionando Alt+F2 ou clicando Depurar > Analisador de Desempenho.

Observação

O Windows 8 ou posterior é necessário para executar ferramentas de profiling com o debugger (janela Ferramentas de Diagnóstico).

Analise o uso da CPU

A ferramenta Uso da CPU é um bom lugar para começar a analisar o desempenho do seu aplicativo. Ele informará mais sobre os recursos da CPU que seu aplicativo está consumindo. Você pode usar a ferramenta de Uso da CPU integrada ao depurador ou a ferramenta de Uso da CPU post-mortem .

Ao usar a ferramenta de uso da CPU integrada ao depurador, abra a janela Ferramentas de Diagnóstico (se estiver fechada, escolha Depurar / Windows / Mostrar Ferramentas de Diagnóstico). Durante a depuração, abra a visualização Resumo e selecione Gravar perfil de CPU.

Habilitar o uso da CPU nas Ferramentas de diagnóstico

Habilitar o uso da CPU nas Ferramentas de diagnóstico

Uma maneira de usar a ferramenta é definir dois pontos de interrupção em seu código, um no início e outro no final da função ou da região de código que você deseja analisar. Examine os dados de desempenho quando estiver pausado no segundo ponto de paragem.

A visualização Uso da CPU mostra uma lista de funções ordenadas pela duração de execução, com a função de execução mais longa listada primeiro sob Principais Funções. A secção Hot Path apresenta o stack de chamadas das funções que estão a consumir mais CPU. Essas listas podem ajudar a guiá-lo para funções onde os gargalos de desempenho estão acontecendo.

Vista do Uso da CPU das Ferramentas de Diagnóstico

A visualização Uso da CPU mostra uma lista de funções ordenadas por tempo de execução mais longo, com a função com o tempo de execução mais longo na parte superior. Isso pode ajudar a guiá-lo para funções onde gargalos de desempenho estão acontecendo.

Ferramentas de Diagnóstico visualização de Uso da CPU Ferramentas de Diagnóstico Uso da CPU

Clique numa função que lhe interesse, e verá uma visualização mais detalhada da árvore de chamadas, com a função selecionada realçada. A tabela mostra colunas com dados como o tempo gasto na função, incluindo funções chamadas (Total CPU), e uma segunda coluna que mostra o tempo gasto numa função, excluindo funções chamadas (Self CPU). Esses dados podem ajudá-lo a avaliar se a função em si é um gargalo de desempenho.

Dica

O profiler do Visual Studio suporta tanto a recolha como a visualização de rastreamentos. O perfilador também pode exibir rastreios que foram coletados anteriormente por outras ferramentas, como dotnet-trace. O Dotnet-trace produz resultados de amostragem, não um traço instrumentado. Para obter mais informações, consulte dotnet-trace.

Ferramentas de Diagnóstico Chamador Chamado

Clique na função que lhe interessa e verá uma visão mais detalhada de "borboleta" com três painéis, com a função selecionada no meio da janela, a função que chama à esquerda e as funções chamadas à direita. A seção Function Body mostra a quantidade total de tempo (e a porcentagem de tempo) gasto no corpo da função, excluindo o tempo gasto em chamadas e funções chamadas. Esses dados podem ajudá-lo a avaliar se a função em si é um gargalo de desempenho.

Ferramentas de Diagnóstico Caller Callee

Analise o uso da memória

A janela Ferramentas de Diagnóstico também permite avaliar o uso de memória na sua aplicação usando a ferramenta de Uso de Memória. Por exemplo, você pode examinar o número e o tamanho dos objetos na pilha. Você pode usar a ferramenta de Utilização de Memória integrada ao depurador de ou a ferramenta de Utilização de Memória post-mortem no Analisador de Desempenho.

Os desenvolvedores do .NET podem escolher entre a ferramenta .NET Object Allocation ou a ferramenta de uso de memória.

  • A ferramenta de Alocação de Objetos .NET ajuda a identificar padrões de alocação e anomalias em seu código .NET e ajuda a identificar problemas comuns com a coleta de lixo. Esta ferramenta é executada apenas como uma ferramenta de análise post-mortem. Você pode executar essa ferramenta em máquinas locais ou remotas.
  • A ferramenta de uso de memória é útil para identificar vazamentos de memória, que normalmente não são comuns em aplicativos .NET. Se precisar usar os recursos do depurador durante a verificação da memória, como avançar no código, a ferramenta de uso de memória integrada ao depurador é recomendada.

Para analisar o uso de memória com a ferramenta de uso de memória, você precisa tirar pelo menos um instantâneo de memória. Muitas vezes, a melhor maneira de analisar a memória é tirar dois instantâneos; o primeiro logo antes de um problema de memória suspeito e o segundo instantâneo logo após ocorrer um problema de memória suspeito. Em seguida, podes comparar a diferença entre os dois instantâneos e ver exatamente o que mudou. A ilustração a seguir mostra como tirar um instantâneo com a ferramenta integrada ao depurador.

Tire um instantâneo nas Ferramentas de diagnóstico

Tire um instantâneo nas Ferramentas de diagnóstico

Quando você seleciona um dos links de seta, você recebe uma visão diferencial da pilha (uma seta vermelha para cima Aumento do uso de memória mostra uma contagem crescente de objetos (esquerda) ou um tamanho de pilha crescente (direita)). Se clicares no link certo, obténs uma visualização diferencial do heap ordenada pelos objetos que mais aumentaram em tamanho de heap. Isso pode ajudá-lo a identificar problemas de memória. Por exemplo, na ilustração abaixo, os bytes usados pelos objetos ClassHandlersStore aumentaram em 3.492 bytes na segunda captura.

Visão de Diferença de Heap das Ferramentas de Diagnóstico

Visualização de Comparação de Heap das Ferramentas de Diagnóstico

Se clicar no link à esquerda na visualização Uso da Memória, a visualização de pilha será organizada por contagem de objetos; os objetos de um tipo específico que mais aumentaram em número são mostrados na parte superior (ordenados pela coluna de diferença de contagem ).

Instrumentação

A ferramenta Instrumentação é semelhante à ferramenta Uso da CPU, exceto que fornece contagens exatas de chamadas e tempo de relógio de parede em vez da utilização da CPU. O método de instrumentação requer mais sobrecarga do que a ferramenta de uso da CPU. Esta ferramenta está disponível no Performance Profiler. Abra o Performance Profiler escolhendo Debug>Performance Profiler (ou Alt + F2). Para obter mais informações, consulte Instrumentation.

Captura de tela mostrando dados da Instrumentação .NET.

Examinar E/S de Ficheiro

A ferramenta E/S de arquivos ajuda você a entender como você pode otimizar suas operações de E/S de arquivos para melhorar o desempenho em seus aplicativos. Se estiveres a tentar investigar e diagnosticar tempos de carregamento lentos, a nova ferramenta de E/S de ficheiros pode ajudar-te a entender como as operações de E/S afetam o tempo que despende. Esta ferramenta está disponível no Performance Profiler. Abra o Performance Profiler escolhendo Debug > Performance Profiler (ou Alt + F2).

A ferramenta mostra operações de leitura e gravação de arquivos em um modo de exibição de lista com guias.

Captura de ecrã a mostrar a ferramenta E/S de ficheiros parada.

Examine o desempenho usando PerfTips

Muitas vezes, a maneira mais fácil de visualizar informações de desempenho é usar PerfTips. Usando PerfTips, você pode visualizar informações de desempenho enquanto interage com seu código. Você pode verificar informações como a duração do evento (medida a partir de quando o depurador foi pausado pela última vez ou quando o aplicativo foi iniciado). Por exemplo, se percorrer o código (F10, F11), o PerfTips mostra a duração da execução do aplicativo desde a operação da etapa anterior até à etapa atual.

Screenshot de PerfTips.

Screenshot de PerfTips.

Você pode usar PerfTips para examinar quanto tempo leva para um bloco de código ser executado ou quanto tempo leva para uma única função ser concluída.

As PerfTips mostram os mesmos eventos que também aparecem na visualização Eventos das Ferramentas de Diagnóstico. Na visualização Eventos, pode ver diferentes eventos que ocorrem durante a depuração, como a definição de um ponto de interrupção ou uma operação de execução de código passo a passo.

Captura de ecrã da vista de eventos das Ferramentas de Diagnóstico.

Captura de ecrã da vista de Eventos das Ferramentas de Diagnóstico.

Observação

Se tiver o Visual Studio Enterprise, também pode ver eventos do IntelliTrace neste separador.

Analisar código assíncrono (.NET)

A ferramenta .NET Async permite que você analise o desempenho de código assíncrono em seu aplicativo. Esta ferramenta está disponível no Performance Profiler. Abra o Performance Profiler escolhendo Debug>Performance Profiler (ou Alt + F2).

A ferramenta mostra cada operação assíncrona em uma exibição de lista. Você pode ver informações como a hora de início, a hora de término e o tempo total de uma operação assíncrona.

Ferramenta assíncrona do .NET interrompida

Analisar código assíncrono (.NET)

A ferramenta .NET Async permite que você analise o desempenho de código assíncrono em seu aplicativo. Esta ferramenta está disponível no Performance Profiler. Abra o Performance Profiler escolhendo Debug>Performance Profiler (ou Alt + F2).

A ferramenta mostra cada operação assíncrona em uma exibição de lista. Você pode ver informações como a hora de início, a hora de término e o tempo total de uma operação assíncrona.

Ferramenta assíncrona do .NET interrompida

Analisar o desempenho do banco de dados (.NET Core)

Para aplicativos .NET Core que usam ADO.NET ou Entity Framework Core, a ferramenta Banco de Dados permite que você registre as consultas de banco de dados que seu aplicativo faz durante uma sessão de diagnóstico. Em seguida, você pode analisar informações sobre consultas individuais para encontrar locais onde o desempenho do seu aplicativo pode ser melhorado. Esta ferramenta está disponível no Performance Profiler. Abra o Performance Profiler escolhendo Debug>Performance Profiler (ou Alt + F2).

A ferramenta mostra cada consulta em um modo de exibição de lista. Você pode ver informações como a hora de início e a duração da consulta.

Alocação

Visualizar contadores .NET (.NET Core)

A partir do Visual Studio 2019 versão 16.7, você pode usar a ferramenta Contadores do .NET no Visual Studio para visualizar contadores de desempenho. Você pode visualizar contadores criados usando dotnet counters. Os dotnet counters suportam muitos contadores, como o uso da CPU e o tamanho do heap do coletor de lixo.

A ferramenta mostra valores dinâmicos para cada contador em uma exibição de lista.

coleta da ferramenta Contador .NET.

Examinar eventos do aplicativo

O genérico do visualizador de eventos permite que você exiba a atividade do seu aplicativo por meio de uma lista de eventos, como carga de módulo, início de thread e configurações do sistema, para ajudar a diagnosticar melhor o desempenho do seu aplicativo diretamente no criador de perfil do Visual Studio. Esta ferramenta está disponível no Performance Profiler. Abra o Performance Profiler escolhendo Debug>Performance Profiler (ou Alt + F2).

A ferramenta mostra cada evento em um modo de exibição de lista. As colunas fornecem informações sobre cada evento, como o nome do evento, carimbo de data/hora e ID do processo.

Rastreio do Visualizador de Eventos

Exibir eventos personalizados nos gráficos da linha do tempo

Você pode criar programaticamente eventos personalizados que aparecem como ícones nos gráficos de linha do tempo, como os gráficos de utilização da CPU e da linha do tempo de uso da memória. Para obter mais informações, consulte Adicionar marcas de usuário à linha do tempo.

Analisar o consumo de recursos (XAML)

Em aplicativos XAML, como aplicativos WPF da área de trabalho do Windows e aplicativos UWP, você pode analisar o consumo de recursos usando a ferramenta Linha do tempo do aplicativo. Por exemplo, você pode analisar o tempo gasto pelo seu aplicativo preparando quadros da interface do usuário (layout e renderização), atendendo solicitações de rede e disco e em cenários como inicialização do aplicativo, carregamento de página e redimensionamento de janela. Para usar a ferramenta, escolha Cronologia da Aplicação no Perfil de Desempenho e, em seguida, escolha Iniciar. Em seu aplicativo, percorra o cenário com um problema suspeito de consumo de recursos e escolha Parar coleta para gerar o relatório.

Taxas de quadros baixas no gráfico de rendimento visual de podem corresponder a problemas visuais observados ao executar a tua aplicação. Da mesma forma, números altos no gráfico de utilização de threads da interface do usuário também podem corresponder a problemas de capacidade de resposta da interface do usuário. No relatório, pode selecionar um período de tempo com um problema de desempenho suspeito e, em seguida, examinar as atividades detalhadas do encadeamento da interface de utilizador na Vista de detalhes da Linha do tempo (painel inferior).

Ferramenta de perfil da linha temporal do aplicativo

Ferramenta de criação de perfil da Linha do Tempo do Aplicativo

Na vista de detalhes da linha do tempo, pode encontrar informações como o tipo de atividade (ou o elemento da interface de utilizador envolvido) juntamente com a duração da atividade. Por exemplo, na ilustração, um evento Layout para um controlo de grelha leva 57,53 ms.

Para obter mais informações, consulte Linha do tempo da aplicação.

Examinar eventos de desempenho e acessibilidade da interface do usuário (UWP)

Em os seus aplicativos UWP, pode ativar a Análise da Interface do Utilizador na janela de Ferramentas de Diagnóstico . A ferramenta procura problemas comuns de desempenho ou acessibilidade e os exibe na vista de eventos enquanto está a depurar. As descrições dos eventos fornecem informações que podem ajudar a resolver problemas.

Exibir eventos de análise da interface do usuário nas ferramentas de diagnóstico

Exibir eventos de análise da interface do usuário nas ferramentas de diagnóstico

Analisar o uso da GPU (Direct3D)

Em aplicativos Direct3D (os componentes Direct3D devem estar em C++), você pode examinar a atividade na GPU e analisar problemas de desempenho. Para obter mais informações, consulte Uso da GPU. Para usar a ferramenta, escolha de uso da GPU no Performance Profiler e, em seguida, escolha Iniciar. No seu aplicativo, percorra o cenário em que está interessado em analisar e escolha Parar a recolha para gerar um relatório.

Quando você seleciona um período de tempo nos gráficos e escolhe exibir detalhes, uma exibição detalhada aparece no painel inferior. Na visualização detalhada, você pode examinar quanta atividade está acontecendo em cada CPU e GPU. Selecione eventos no painel mais baixo para obter pop-ups na linha do tempo. Por exemplo, selecione o evento Presente para exibir pop-ups de chamada Presente. (As linhas verticais VSync cinza claro podem ser usadas como referência para compreender se determinadas chamadas Present perderam o VSync. Deve haver uma chamada Present entre cada dois VSyncs para que o aplicativo atinja consistentemente 60 FPS.)

ferramenta de perfilagem do uso da GPU

ferramenta de criação de perfil de uso de GPU

Você também pode usar os gráficos para determinar se há gargalos de desempenho vinculados à CPU ou à GPU.

Analise o desempenho (ferramentas herdadas)

No Visual Studio 2019, o Performance Explorer herdado e as ferramentas de criação de perfil relacionadas, como o Assistente de Desempenho, foram dobrados no Performance Profiler, que você pode abrir usando Debug>Performance Profiler. No Performance Profiler, as ferramentas de diagnóstico disponíveis dependem do destino escolhido e do projeto de inicialização aberto atual. A ferramenta Uso da CPU fornece a capacidade de amostragem anteriormente suportada no Assistente de Desempenho. A ferramenta Instrumentação fornece o recurso de criação de perfil instrumentado (para contagens e durações precisas de chamadas) que estava no Assistente de Desempenho. Ferramentas de memória adicionais também aparecem no Performance Profiler.

Performance Explorer