Partilhar via


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

Este guia fornece uma comparação geral das principais tecnologias de criação de perfil de desempenho de uso geral na 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 detrimento 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 equipa do Visual Studio para compreender rapidamente as características de desempenho de uma aplicação em desenvolvimento no sistema de projeto existente do Visual Studio. Sua força é integrar-se firmemente com o projeto de desenvolvimento ativo, simplificando a análise dos cenários de desempenho mais comuns e coleta rápida e fácil de apenas um único aplicativo.

Kit de Ferramentas de Desempenho do Windows é criado pela equipa do Windows para compreender as características de todo o sistema do PC de uma só vez. Embora tenha crescido a partir da necessidade de analisar hardware e drivers, é muito eficaz na compreensão de problemas de software também. Sua força está na recolha de grandes quantidades de informações de toda a máquina de uma só vez, por isso problemas de múltiplos processos, aqueles que lidam com hardware ou drivers, e cenários complexos são adequados para estas ferramentas.

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

Existe sobreposição entre estas ferramentas. Muitas vezes, você pode começar a explorar um problema em uma ferramenta e alternar para outra para uma exibiçã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 o Windows 10 e o Windows 11 como wpr.exe disponível na variável de caminho padrão de shells como o PowerShell e o Prompt de Comando.

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

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

Personalização para cenários avançados de análise de desempenho

O Kit de Ferramentas de Desempenho do Windows também oferece dois pontos de extensibilidade que podem servir 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 Analisador de Desempenho do Windows.
  • 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.

PerfView é similarmente baseado no .NET biblioteca de TraceEvent para consumir rastreamentos de desempenho programaticamente. TraceEvent pode ser usado independentemente do PerfView para executar a 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 criar com o Visual Studio, eles estarão localizados da mesma forma que nas configurações de 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 escolher depende do cenário de desempenho que você está tentando explorar. Uma comparação de funcionalidades e características entre as ferramentas é fornecida na tabela a seguir, onde:

  • Bem suportado significa que a ferramenta é projetada para a tarefa pretendida e alcança resultados robustos e detalhados.
  • Suportado significa que a ferramenta pode exigir configuração adicional ou etapas para alcançar os resultados desejados. Pode conter um âmbito de ação limitado dentro da categoria.
  • Não suportado significa que a ferramenta não foi concebida para esta utilização.

Sugestão

Para uma regra geral, comece com Visual Studio Profiling quando possível. Passe para o Kit de Ferramentas de Desempenho do Windows ou para o PerfView quando atingir os limites do que as ferramentas do Visual Studio podem fazer.

Situação Perfil de desempenho do Visual Studio Toolkit de Desempenho do Windows (Windows Performance Toolkit) PerfView
Considerações gerais sobre o uso
Tamanho do arquivo de rastreamento Bem suportado Suportado Suportado
Aquisição de Ferramentas Bem suportado Bem suportado Bem suportado
Kits de extensibilidade Não suportado Bem suportado Bem suportado
Considerações sobre o âmbito do trabalho
Processo ou Projeto Único Bem suportado Suportado Suportado
Múltiplos Processos Não suportado Bem suportado Bem suportado
Considerações sobre hardware
Uso da CPU Bem suportado Bem suportado Bem suportado
Uso da GPU Bem suportado Bem suportado Não suportado
Uso de memória Bem suportado Bem suportado Bem suportado
Entrada/saída do dispositivo Não suportado Bem suportado Bem suportado
Utilização de energia Não suportado Bem suportado Não suportado
Alças do sistema Não suportado Bem suportado Bem suportado
Considerações sobre suporte à linguagem de código
Suporte para C/C++ Bem suportado Bem suportado Bem suportado
Suporte para .NET Bem suportado Bem suportado Bem suportado
Suporte para JavaScript Suportado Suportado Suportado
Considerações sobre o cenário
Rastreamento de eventos para Windows Suportado Bem suportado Bem suportado
Composição Não suportado Bem suportado Não suportado
HTML/Edge/Internet Explorer/Visualização da Web Não suportado Bem suportado Não suportado
XAML/WinUI Suportado Bem suportado Bem suportado
Fluxos e falhas de áudio/vídeo Não suportado Bem suportado Não suportado
Cronometragem da base de dados Bem suportado Não suportado Não suportado
Alocação de objetos gerenciados e coleta de lixo Bem suportado Não suportado Bem suportado
Cenários personalizados Não suportado Bem suportado Bem suportado

Considerações gerais sobre o uso

Para aqueles que estão apenas começando com 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. Recomendamos o uso do Visual Studio Performance Profiler sobre PerfView se ele atender às suas necessidades.

Para análises de desempenho do sistema mais complexas que podem exigir mais potência e versatilidade, recomendamos o Kit de Ferramentas de Desempenho do Windows, que consiste em duas ferramentas usadas para realizar tarefas de análise de desempenho:

  • O Gravador de Desempenho do Windows, disponível tanto como ferramenta de linha de comando quanto com uma interface gráfica, é responsável por capturar a sessão de rastreamento.
  • O Analisador de Desempenho do Windows é aberto posteriormente para 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 automaticamente com muitas das complexidades de análise e depuração com base na configuração do projeto.
  • 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 coleta menor.
  • Um foco mais específico se traduz em menos impacto sobre outros aplicativos e no hardware da máquina enquanto a criação de perfil ocorre, um tamanho geral reduzido nos arquivos de rastreamento gerados e armazenados, e uma maior velocidade de processamento para rever informações após a conclusão da coleta.
  • Leva menos tempo para iniciar e concluir um rastreio, com uma capacidade mais rápida de revisar e processar, porque o Visual Studio Performance Profiler se preocupa apenas com a aplicação e não com todo o sistema.
  • A coleta de dados e a análise resultante são todas realizadas no Visual Studio, com páginas de análise iniciando automaticamente na conclusão da coleta. A visualização de relatório também tende automaticamente a concentrar a atenção em pontos críticos ou áreas de ação.

Alguns dos benefícios que o Kit de Ferramentas de Desempenho do Windows oferece incluem:

  • Ampla documentação e blogs são fornecidos pelas equipas de Desempenho e Diagnóstico do Windows para ajudar-te 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 Analisador de Desempenho do Windows.
  • 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 abrangente integrada 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 execução do .NET.
  • Extensível para vistas personalizadas.

Considerações sobre o âmbito do trabalho

Para análises em torno de uma aplicação única e, especialmente, de um processo único, todas as ferramentas são bastante eficazes na coleta e compreensão do desempenho. A vantagem, no entanto, ficaria do lado do Visual Studio Performance Profiler, especialmente quando a fonte do aplicativo e o sistema de projeto já estão disponíveis. O mecanismo Visual Studio Performance Profiler foi projetado para coletar informações de CPU, GPU e memória de um binário de forma simplificada semelhante ao recurso de depuração F5. Embora se concentre apenas numa aplicação em mãos, este mecanismo de recolha oferece um ciclo de resposta mais rápido e um ciclo de desenvolvimento mais eficiente.

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 forem necessários recursos de diagnóstico .NET mais detalhados.

Para situações com de complexidade maior que incluem várias solicitações de processo cruzado, dispositivos de hardware e seus drivers ou aprofundamento em tecnologias de plataforma Windows, o Kit de Ferramentas de Desempenho do Windows é a escolha ideal.

Considerações sobre hardware

O Visual Studio Performance Profiler, o Kit de Ferramentas de Desempenho do Windows 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 suportando adicionalmente a GPU. As ferramentas são geralmente bem adequadas para a análise introdutória nestas áreas.

O uso da CPU pode ser analisado com as três ferramentas e normalmente é capturado usando amostragem. A amostragem captura traços de stack da aplicação periodicamente e fornece uma classificação da frequência com que ocorrem. Ambas as ferramentas podem ajustar esse comportamento para, em vez disso, usar instrumentação para contabilidade exata.

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

Uso de memória pode ser analisado com as três ferramentas a recolher informações sobre o espaço heap e as pilhas associadas a 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 Kit de Ferramentas de Desempenho do Windows é desenvolvido em conjunto com o sistema operacional, por isso está pronto e é capaz de coletar essa categoria de informações mais focada no sistema.

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

O Kit de Ferramentas de Desempenho do Windows é focado 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 é focado em uma gama mais ampla de linguagens de programação, começando com tecnologias de origem do .NET, como C# e ASP.NET depois expandindo para fora.

O PerfView suporta aplicativos .NET e nativos (C e C++). Ele tem profundo conhecimento dos tempos de execução do .NET e capacidades relacionadas às tarefas Web do ASP.NET.

Isso não quer dizer que o Visual Studio não possa analisar 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 (UI) e nos bancos de dados que residem no aplicativo que está sendo analisado.

O Kit de Ferramentas de Desempenho do Windows tende a concentrar-se nos componentes e nas estruturas do sistema operativo, como de composição, vistas do navegador e erros nas linhas 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 em 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 de hardware que podem diferir daquele usado 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 Diagnóstico e Desempenho do Windows.

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

Resumo

Visual Studio Performance Profiler, Windows Performance Toolkit e 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 lhe dê as boas-vindas para enviar comentários nesta página abaixo, ou para problemas especificamente relacionados ao desempenho de desenvolvimento do Windows, registre um problema no repositório de desempenho de desenvolvimento do Windows.