Compartilhar via


Escolhendo entre o Visual Studio Performance Profiler, o Windows Performance Toolkit e o PerfView

Este guia fornece uma comparação geral das principais tecnologias de criação de perfil de desempenho de uso geral da Microsoft: Visual Studio Performance Profiler, Windows Performance Toolkit e PerfView.

Essas ferramentas podem ajudá-lo a diagnosticar e entender as características de desempenho de seus aplicativos no Windows. O objetivo deste guia é fornecer uma visão geral de quando usar um em vez do outro, destacando cada um de seus pontos fortes e oferecendo uma breve visão geral da funcionalidade que eles contêm.

Visão geral

O Visual Studio Performance Profiler é criado pela equipe do Visual Studio para entender rapidamente as características de desempenho de um aplicativo em desenvolvimento dentro do sistema de projeto existente do Visual Studio. Sua força é a integração perfeita com o projeto de desenvolvimento ativo, simplificando a análise dos cenários de desempenho mais comuns e a coleta rápida e fácil de apenas um único aplicativo.

O Windows Performance Toolkit foi criado pela equipe do Windows para entender as características de todo o sistema de todo o computador de uma só vez. Embora tenha surgido da necessidade de analisar hardware e drivers, também é muito eficaz na compreensão de problemas de software. Sua força está na coleta de grandes quantidades de informações de toda a máquina de uma só vez, portanto, problemas de vários processos, aqueles que lidam com hardware ou drivers e cenários complexos são adequados para essas ferramentas.

O PerfView é criado pela equipe do .NET para entender o desempenho dos aplicativos .NET. Como o Windows Performance Toolkit, ele pode coletar grandes quantidades de informações de toda a máquina de uma só vez. Ele se diferencia por sua capacidade de exibir informações muito detalhadas sobre os serviços de runtime do .NET, como coleta de lixo, compilação just-in-time e o pool de threads gerenciado. O PerfView pode ser usado para aplicativos gerenciados, nativos e de modo misto.

Há sobreposição entre essas ferramentas. Muitas vezes, você pode começar a explorar um problema em uma ferramenta e alternar para outra para obter uma visão diferente do mesmo cenário. Outras vezes, uma das ferramentas será mais eficaz do que as outras.

Instalação

O Visual Studio Performance Profiler é um componente do próprio Visual Studio e pode ser instalado por meio do mesmo assistente de instalação que o restante do ambiente de desenvolvimento.

O Kit de Ferramentas de Desempenho do Windows pode ser baixado separadamente como parte do Kit de Avaliação e Implantação do Windows. No entanto, a ferramenta Gravador de Desempenho de linha de comando é pré-instalada com Windows 10 e Windows 11 conforme wpr.exe disponível na variável de caminho padrão de shells como PowerShell e Prompt de Comando.

O Analisador de Desempenho está disponível como um aplicativo na Microsoft Store.

O PerfView está disponível como um download autônomo na página PerfView GitHub Releases . Nenhuma instalação é necessária.

Customizing para cenários avançados de análise de desempenho

O Windows Performance Toolkit também oferece dois pontos de extensibilidade que podem atender a cenários avançados de análise de desempenho.

  • O SDK do Microsoft Performance Toolkit lida com o processamento de dados de rastreamento e permite que os desenvolvedores criem seus próprios plug-ins para serem exibidos dentro do Windows Performance Analyzer.
  • O .NET TraceProcessing permite a criação de ferramentas personalizadas que podem processar informações de rastreamento em tabelas resultantes e é especialmente útil para análise automatizada de dados de rastreamento em massa.

O PerfView é baseado da mesma forma na biblioteca .NET TraceEvent para consumir rastreamentos de desempenho programaticamente. TraceEvent pode ser usado independentemente do PerfView para executar uma análise personalizada de dados de rastreamento de desempenho.

Observação

Para que os cenários de análise de desempenho funcionem, você precisará acessar os símbolos que se correlacionam com o aplicativo do Windows que está sendo testado. Ao compilar com o Visual Studio, eles estarão localizados da mesma forma que nas configurações do cenário de depuração, criados com sua solução ou capturados de servidores de símbolos. Ao analisar outras bibliotecas ou componentes, você terá que localizar os símbolos desses componentes para concluir sua análise.

Considerações para escolher uma ferramenta

A ferramenta a ser escolhida depende do cenário de desempenho que você está tentando explorar. Uma comparação de funcionalidades e características entre as ferramentas está na tabela abaixo:

Dica

Para uma regra geral, comece com a criação de perfil do Visual Studio quando possível. Passe para o Windows Performance Toolkit ou PerfView ao atingir os limites do que as ferramentas do Visual Studio podem fazer.

Situação Criador de Perfil de Desempenho do Visual Studio Windows Performance Toolkit PerfView
Considerações gerais de uso
Tamanho do arquivo de rastreamento ✔️ 🆗 🆗
Aquisição de Ferramentas ✔️ ✔️ ✔️
Kits de extensibilidade ✔️ ✔️
Considerações sobre o escopo do trabalho
Processo ou projeto único ✔️ 🆗 🆗
Múltiplos processos ✔️ ✔️
Considerações sobre hardware
Uso da CPU ✔️ ✔️ ✔️
Uso de GPU ✔️ ✔️
Uso de Memória ✔️ ✔️ ✔️
Entrada/saída do dispositivo ✔️ ✔️
Uso de energia ✔️
Identificadores do sistema ✔️ ✔️
Considerações sobre suporte à linguagem de código
Suporte para C/C++ ✔️ ✔️ ✔️
Suporte para .NET ✔️ ✔️ ✔️
Suporte para JavaScript 🆗 🆗 🆗
Considerações sobre o cenário
Rastreamento de Eventos para Windows 🆗 ✔️ ✔️
Composição ✔️
HTML/Edge/Internet Explorer/Webview ✔️
XAML/WinUI 🆗 ✔️ ✔️
Pipelines e falhas de áudio/vídeo ✔️
Tempo do banco de dados ✔️
Alocação de objetos gerenciados e coleta de lixo ✔️ ✔️
Cenários personalizados ✔️ ✔️

Chave

  • ✔️ Bem suportado: Projetado para a tarefa pretendida e alcança resultados robustos e detalhados.
  • 🆗 Com suporte: pode exigir configuração ou etapas adicionais para alcançar os resultados desejados. Pode conter um escopo de ação limitado dentro da categoria.
  • ❌ Não suportado: Não projetado para este uso.

Considerações gerais de uso

Para aqueles que estão começando a usar a análise de desempenho, recomendamos o Visual Studio Performance Profiler como um recurso bem integrado dentro do pacote de desenvolvimento existente do Visual Studio. É recomendável usar o Visual Studio Performance Profiler em vez do PerfView se ele atender às suas necessidades.

Para uma análise de desempenho do sistema mais complexa que pode exigir mais energia e versatilidade, recomendamos o Windows Performance Toolkit, que consiste em duas ferramentas usadas para realizar tarefas de análise de desempenho:

  • O Gravador de Desempenho do Windows, disponível como uma ferramenta de linha de comando e com uma interface gráfica, é responsável por capturar a sessão de rastreamento.
  • O Windows Performance Analyzer é aberto posteriormente para pós-processar os dados coletados e fornecer uma exibição de análise altamente personalizável.

Alguns dos benefícios que o Visual Studio Performance Profiler oferece incluem:

  • Uma boa introdução à análise de desempenho nos principais domínios.
  • Ele lida com muitas das complexidades de análise e depuração automaticamente com base na configuração do projeto.
  • Ele destaca automaticamente as principais áreas de preocupação.
  • É melhor para se concentrar em apenas um aplicativo, com um conjunto de dados menor e mais focado e um escopo de coleção menor.
  • Um foco mais específico se traduz em menos impacto em outros aplicativos e hardware de máquina enquanto ocorre a criação de perfil, um tamanho geral reduzido para os arquivos de rastreamento gerados e armazenados e uma maior velocidade de processamento para revisar informações após a conclusão da coleta.
  • Leva menos tempo para iniciar e concluir um rastreamento, com uma capacidade mais rápida de revisar e dar a volta porque o Visual Studio Performance Profiler se preocupa apenas com o aplicativo e não com todo o sistema.
  • A coleta de dados e a análise resultante são executadas no Visual Studio, com as páginas de análise sendo iniciadas automaticamente na conclusão da coleta. A exibição de relatório também tende automaticamente a concentrar a atenção em pontos de acesso ou áreas de ação.

Alguns dos benefícios que o Windows Performance Toolkit oferece incluem:

  • Ampla documentação e blogs são fornecidos pelas equipes de Desempenho e Diagnóstico do Windows para ajudá-lo a começar.
  • É melhor para coletar arquivos muito grandes, especialmente de sistemas que estão ocupados com tarefas em segundo plano. É uma ferramenta abrangente para coletar informações que serão filtradas posteriormente na interface do Windows Performance Analyzer.
  • Capacidade de ser personalizado para cenários avançados de análise de desempenho usando pontos de extensibilidade. (Veja abaixo)

Alguns dos benefícios que o PerfView oferece incluem:

  • Documentação integrada abrangente e vídeos de instruções acessíveis pela Internet vinculados a partir do aplicativo.
  • É fácil implantar em ambientes de produção simplesmente copiando PerfView.exe.
  • Um modo de gravador de voo para capturar problemas difíceis de reproduzir.
  • Diagnósticos muito detalhados para serviços de runtime do .NET.
  • Extensível para exibições personalizadas.

Considerações sobre o escopo do trabalho

Para análises em torno de um único aplicativo e, especialmente, de um único processo, todas as ferramentas são muito capazes de coletar e entender o desempenho. A vantagem, no entanto, ficaria do lado do Visual Studio Performance Profiler, especialmente quando a origem do aplicativo e o sistema de projeto já estão disponíveis. O mecanismo do Visual Studio Performance Profiler foi projetado para coletar informações de CPU, GPU e memória de um binário de maneira simplificada semelhante à funcionalidade de depuração F5. Embora se concentre apenas no aplicativo em questão, esse mecanismo de coleta oferece um retorno mais apertado e um loop de desenvolvedor.

Escolha PerfView se o Visual Studio não tiver os recursos necessários, não puder ser executado devido a requisitos de coleta (comuns em ambientes de produção) ou se recursos de diagnóstico do .NET mais detalhados forem necessários.

Para situações com maior complexidade que incluem várias solicitações entre processos, dispositivos de hardware e seus drivers ou aprofundamentos nas tecnologias da plataforma Windows, o Windows Performance Toolkit é a escolha ideal.

Considerações sobre hardware

O Visual Studio Performance Profiler, o Windows Performance Toolkit e o PerfView podem diagnosticar CPU e memória para os principais componentes de hardware, com o Visual Studio Performance Profiler e o Windows Performance Toolkit também dando suporte à GPU. As ferramentas são geralmente bem combinadas na análise introdutória nessas áreas.

O uso da CPU pode ser analisado com todas as três ferramentas e normalmente é capturado usando amostragem. A amostragem captura rastreamentos de pilha do aplicativo periodicamente e fornece uma classificação sobre a frequência com que eles aparecem. Ambas as ferramentas podem ajustar esse comportamento para usar instrumentação para contabilidade exata.

O uso da GPU pode ser analisado com o Visual Studio Performance Profiler e o Windows Performance Toolkit, capturando uma visão geral das informações.

O uso de memória pode ser analisado com todas as três ferramentas coletando informações sobre o espaço de heap e as pilhas associadas às alocações no heap.

Quando surgem cenários mais complexos, como a análise de rede, disco, dispositivos, identificadores ou consumo geral de energia do sistema, o Kit de Ferramentas de Desempenho do Windows está mais equipado para lidar com a análise. Esses dados são melhor coletados diretamente do sistema operacional, pois ele envia solicitações para os vários componentes de hardware. O Windows Performance Toolkit é desenvolvido em conjunto com o sistema operacional, portanto, está pronto e é capaz de coletar essa categoria de informações mais focada no sistema.

Considerações sobre suporte à linguagem de código

O Windows Performance Toolkit se concentra principalmente no suporte para C e C++, pois essas linguagens são usadas na base de código do sistema operacional Windows.

O suporte ao Visual Studio Performance Profiler se concentra em uma gama mais ampla de linguagens de programação, começando com tecnologias de origem do .NET, como C# e ASP.NET, e depois expandindo para fora.

O PerfView dá suporte a aplicativos .NET e nativos (C e C++). Ele tem profundo conhecimento dos tempos de execução do .NET e recursos em torno de ASP.NET cargas de trabalho da Web.

Isso não quer dizer que o Visual Studio não possa analisar o código C ou C++, ou que o Windows Performance Analyzer não possa analisar aplicativos .NET ou que o PerfView não possa analisar aplicativos Web. É melhor começar com a ferramenta que mais se aproxima do aplicativo que está sendo analisado para aproveitar os pontos fortes de cada ferramenta.

Considerações sobre o cenário

Todas as ferramentas contêm várias opções baseadas em cenários para estudar o desempenho do aplicativo.

As opções do Visual Studio Performance Profiler tendem a se concentrar no .NET, na interface do usuário e nos bancos de dados que residem no aplicativo que está sendo analisado.

O Kit de Ferramentas de Desempenho do Windows tende a se concentrar em componentes e estruturas do sistema operacional, como composição, exibições do navegador e falhas em pipelines de processamento em tempo real.

Para cenários que exigem uma solução mais personalizada, o Gravador de Desempenho do Windows pode combinar dados de coleta de todo o sistema e dados de coleta relacionados ao aplicativo em uma única sessão de gravação. Essa funcionalidade permite que um desenvolvedor de aplicativos ofereça uma solução completa para implantar aos clientes para solicitar dados de desempenho do hardware que podem ser diferentes daqueles usados para desenvolver o produto. Mais informações sobre esse mecanismo podem ser encontradas na série de blogs Criação de Perfis Personalizados da equipe de Desempenho e Diagnóstico do Windows.

O PerfView é direcionado a investigações profundas de aplicativos .NET e tempos de execução, mas é igualmente capaz em investigações de vários processos e no nível do sistema operacional.

Resumo

O Visual Studio Performance Profiler, o Windows Performance Toolkit e o PerfView são três ferramentas robustas da Microsoft disponíveis para você entender o desempenho do seu aplicativo. Escolher qual ferramenta atenderá melhor às suas necessidades requer uma variedade de considerações sobre sua situação específica. Esperamos que este guia forneça as informações necessárias para que você faça escolhas sábias de análise de desempenho, mas também convidamos você a enviar comentários nesta página abaixo ou, para problemas especificamente relacionados ao desempenho de desenvolvimento do Windows, registre um problema no repositório Windows Dev Performance.