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. Um perfilador pode ajudá-lo a tomar decisões informadas rapidamente, fornecendo uma representação visual dos tempos de execução e do uso 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.

Para obter a melhor experiência com esta documentação, escolha sua linguagem de desenvolvimento ou tempo de execução preferido na lista na parte superior do artigo.

Meça o desempenho em builds de lançamento

As ferramentas no Performance Profiler destinam-se a fornecer análise para compilações do Release. 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 a ferramenta de análise de desempenho de Uso da CPU ou Uso da Memória, em comparação com as ferramentas integradas ao depurador, consulte Executar ferramentas de criação de perfil nas versões de lançamento 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 profiler da linha de comando para habilitar cenários que envolvem várias ferramentas de profiling.

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 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.

visão Resumo das Ferramentas de Diagnóstico Resumo de Ferramentas de Diagnóstico

Resumo das Ferramentas de Diagnóstico Resumo das Ferramentas de Diagnóstico

A janela Ferramentas de Diagnóstico é uma maneira comum de realizar o perfilamento de aplicações, mas para versões de lançamento, você também pode fazer uma análise pós-mortem da sua aplicação. 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 a reinicialização para ignorar a página de inicialização e executar automaticamente com suas configurações anteriores pressionando Alt+F2 ou clicando em Depurar >do Performance Profiler .

Observação

É necessário ter o Windows 8 ou posterior para executar ferramentas de perfilagem com o depurador (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 integrada de Uso da CPU 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 de 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 criação de perfil quando estiver pausado no segundo ponto de interrupção.

A visualização Uso da CPU mostra uma lista de funções ordenadas por execução mais longa, com a função de execução mais longa na parte superior em Principais Funções. A seção Hot Path mostra a pilha de chamadas para as funções que mais estão a usar a CPU. Essas listas podem ajudar a guiá-lo para funções onde os gargalos de desempenho estão acontecendo.

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

A visualização Uso da CPU mostra uma lista de funções ordenadas pela duração de execução, com a função que executa por mais tempo no topo. Isso pode ajudar a guiá-lo para funções onde gargalos de desempenho estão acontecendo.

Visualização do Uso da CPU nas Ferramentas de Diagnóstico

Clique em uma função na qual você está interessado e você verá uma árvore de chamada mais detalhada visualização, 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 na 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 oferece suporte à coleta e visualização de rastreamentos. O perfilador também pode exibir traços 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 Callee

Clique numa função na qual esteja interessado, e verá uma vista mais detalhada de três painéis "borboleta", com a função selecionada no meio da janela, a função chamadora à 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 Chamador 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 Uso de Memória integrada ao depurador, , ou a ferramenta de Uso de Memória pós-morte, , 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 post-mortem. Você pode executar essa ferramenta em máquinas locais ou remotas.
  • A ferramenta de uso de memória é útil na identificação de vazamentos de memória, que normalmente não são comuns em aplicações .NET. Se você precisar usar os recursos do depurador durante a verificação da memória, como percorrer o 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, pode-se visualizar uma comparação dos 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

Ao selecionar um dos links de seta, é exibida uma visão comparativa 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 clicar no link certo, obterá uma visualização diferencial do montículo, ordenada pelos objetos que mais aumentaram em tamanho. Isso pode ajudá-lo a identificar problemas de memória. Por exemplo, na ilustração abaixo, os bytes usados por objetos ClassHandlersStore aumentaram em 3.492 bytes na segunda captura.

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

Vista de diferença de pilha das Ferramentas de Diagnóstico

Se clicar no link à esquerda na vista Memory Usage, a vista de heap é organizada por contagem de objetos; os objetos de um tipo específico que mais aumentaram em número são apresentados no topo (ordenados pela coluna Count Diff).

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 a 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 estiver a tentar investigar e diagnosticar tempos de carregamento lentos, a nova ferramenta de E/S de ficheiro pode ajudá-lo a entender como as operações de E/S afetam o seu tempo despendido. 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 o utilizador percorrer o código (F10, F11), o PerfTips mostrará a duração de execução da aplicação desde a operação de passo anterior até ao passo 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 visualizar 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.

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

Captura de ecrã da visualização de Eventos das Ferramentas de Diagnóstico.

Observação

Se tiver o Visual Studio Enterprise, também poderá 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

Esta ferramenta é suportada para aplicativos .NET Core e .NET 5+.

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

Esta ferramenta é suportada para aplicativos .NET Core e .NET 5+.

Analisar o desempenho do banco de dados (.NET)

Para aplicativos .NET Core e .NET 5+ 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)

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. Pode visualizar contadores criados usando o Dotnet Counters . Os contadores do .NET suportam muitos contadores, tais como o uso da CPU e o tamanho da pilha do coletor de lixo.

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

coleta da ferramenta Contador .NET.

Esta ferramenta é suportada para aplicativos .NET Core e .NET 5+.

Examinar eventos do aplicativo

O visualizador de eventos genérico permite-lhe exibir a atividade da sua aplicação por meio de uma lista de eventos, como carga de módulos, início de threads e configurações do sistema, para ajudar a diagnosticar melhor o desempenho da sua aplicação diretamente no perfilador 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 Linha do Tempo da Aplicação no Performance Profiler e, em seguida, escolha Iniciar. Na sua aplicação, percorra o cenário com um problema suspeito de consumo de recursos e escolha Parar a recolha para gerar o relatório.

Baixas taxas de fotogramas no gráfico de taxa de transferência visual do podem corresponder a problemas visuais que se vê ao executar a sua 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, você pode selecionar um período de tempo com um problema de desempenho suspeito e, em seguida, examinar as atividades detalhadas do thread da interface do utilizador na vista Detalhes da Linha do Tempo (painel inferior).

Ferramenta de perfilamento da linha do tempo da aplicação

Ferramenta de Perfilagem da Cronologia da Aplicação

Na visualização de detalhes da linha do tempo, pode-se encontrar informações como o tipo de atividade (ou o elemento da interface envolvido) juntamente com a duração da atividade. Por exemplo, na ilustração, um evento Layout para um controlo de grelha demora 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)

Nos seus aplicativos UWP, pode habilitar Análise da Interface do Utilizador na janela Ferramentas de Diagnóstico. A ferramenta procura problemas comuns de desempenho ou acessibilidade e exibe-os na vista Eventos do durante a depuração. 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 Uso da GPU no Performance Profiler e, em seguida, escolha Iniciar. Em seu aplicativo, percorra o cenário em que você está interessado em criar perfil e escolha Parar coleta 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 visualizar os pop-ups de chamada Presente. (As linhas verticais VSync cinza claro podem ser usadas como referência para entender se determinadas chamadas Present ocorreram fora dos períodos de VSync. Deve haver uma chamada Present entre cada dois VSyncs para que a aplicação mantenha constantemente 60 FPS.)

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

ferramenta de análise de utilização 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 Explorador de Desempenho herdado e as ferramentas de criação de perfil relacionadas, como o Assistente de Desempenho, foram integrados no Perfil de Desempenho, que pode abrir usando Debug>Perfil de Desempenho. No Performance Profiler, as ferramentas de diagnóstico disponíveis dependem do destino escolhido e do projeto de inicialização aberto atual. A ferramenta de uso da CPU fornece a capacidade de amostragem que anteriormente era suportada no Assistente de Desempenho. A ferramenta de Instrumentação fornece a capacidade de criação de perfis instrumentados (para contagens e durações precisas de chamadas) que antes se encontrava no Assistente de Desempenho. Ferramentas de memória adicionais também aparecem no Performance Profiler.

ferramenta Performance Explorer