Instrumentação no Visual Studio (C#, Visual Basic, C++, F#)

Este artigo descreve as ferramentas de instrumentação no Visual Studio, que são usadas para coletar contagens exatas de chamadas e tempos de chamada.

Há dois tipos de instrumentação:

  • Estático, que modifica os arquivos do programa antes de ser executado (VSInstr)

  • Dinâmico, que usa um processo dinâmico em que ele não altera os arquivos. Ele carrega os arquivos na memória e os modifica para coletar as informações de instrumentação. Usando a ferramenta de instrumentação dinâmica, você obtém informações mais precisas, mas para uma parte menor do programa. Você pode investigar pequenas seções de código.

A instrumentação dinâmica é útil porque:

  • A instrumentação estática interrompe a assinatura de nome forte. Com a instrumentação dinâmica, esse problema é evitado porque a instrumentação ocorre em runtime.

  • Com a instrumentação estática, os arquivos precisam ser implantados em uma ordem específica e a ferramenta pode não saber onde estão os arquivos. Você precisa executar o VSInstr manualmente. Com a nova ferramenta de instrumentação, você não precisa encontrar os arquivos. Em um programa complicado, encontrar todos os arquivos pode ser um processo difícil e manual.

Instrumentação versus amostragem

Quando se trata de criação de perfil, há dois mecanismos de coleta de dados. Coleção usando instrumentação ou coleção usando amostragem. Para obter informações detalhadas, consulte Noções básicas sobre métodos de coleta de desempenho.

Ferramenta de instrumentação dinâmica

Instrumentação – a partir do Visual Studio 2022 versão 17.5, a ferramenta Instrumentação fornece instrumentação dinâmica para .NET Core, .NET 5+ e .NET Framework. Essa ferramenta fornece o melhor desempenho para cenários de instrumentação. Acesse essa ferramenta usando o Criador de Perfil de Desempenho (Alt + F2). Para obter mais informações, consulte Instrumentar seu aplicativo.

A partir do Visual Studio 2022 versão 17.6, a ferramenta Instrumentação também dá suporte a C/C++, mas usa a instrumentação estática (VSInstr).

Para usar essa ferramenta na linha de comando, confira Criação de perfil de aplicativos da linha de comando.

Instrumentação – a partir do Visual Studio 2019 versão 16.9, a ferramenta Instrumentação fornece instrumentação dinâmica para .NET Core, .NET 5+ e .NET Framework (não C/C++). Essa ferramenta usa uma versão do VSInstr.exe que dá suporte à instrumentação dinâmica. Acesse essa ferramenta usando o Criador de Perfil de Desempenho (Alt + F2). Para DLLs, você precisa usar a ferramenta de linha de comando (VSInstr).

Ferramenta de instrumentação estática

Vsinstr – a partir do Visual Studio 2022 versão 17.6 Versão Prévia 2, a ferramenta Instrumentação usa o VSInstr para suporte ao C/C++. O VSInstr também é usado para cenários de linha de comando e funciona para aplicativos .NET Framework e C/C++. Para obter mais informações, consulte, Coletar dados de tempo detalhados para um aplicativo autônomo usando a linha de comando do criador de perfil.