Instrumentación en Visual Studio (C#, Visual Basic, C++ y F#)

En este artículo se describen las herramientas de instrumentación de Visual Studio, que se usan para recopilar recuentos exactos de llamadas y tiempos de llamada.

Hay dos tipos de instrumentación:

  • Estática, que modifica los archivos del programa antes de que se ejecute (VSInstr)

  • Dinámica, que usa un proceso dinámico en el que este no modifica los archivos. Carga los archivos en la memoria y, a continuación, los modifica para recopilar la información de la instrumentación. Con la herramienta de instrumentación dinámica, obtiene información más precisa, pero para una parte más pequeña del programa. Puedes investigar secciones de código pequeñas.

La instrumentación dinámica es útil porque:

  • La instrumentación estática interrumpe la firma de nombres seguros. Con la instrumentación dinámica, este problema se evita porque la instrumentación se produce en tiempo de ejecución.

  • Con la instrumentación estática, los archivos deben implementarse en un orden específico, y es posible que la herramienta no sepa dónde están dichos archivos. Debes ejecutar de manera manual VSInstr. Con la nueva herramienta de instrumentación, no es necesario buscar los archivos. En un programa más complejo, encontrar todos los archivos puede convertirse en un proceso difícil y manual.

Instrumentación frente a muestreo

En lo que respecta a la generación de perfiles, existen dos mecanismos de recopilación de datos. Recopilación mediante instrumentación y recopilación mediante muestreo. Para obtener más información, consulta: Descripción de los métodos de recopilación de rendimiento.

Herramienta de instrumentación dinámica

Instrumentación A partir de la versión 17.5 de Visual Studio 2022, la herramienta de instrumentación proporciona instrumentación dinámica para .NET Core, .NET 5 y versiones posteriores y .NET Framework. Esta herramienta proporciona el mejor rendimiento para escenarios de instrumentación. Accede a esta herramienta mediante el Generador de perfiles de rendimiento (Alt + F2). Para obtener más información, consulta: Instrumentación de la aplicación.

A partir de la versión 17.6 de Visual Studio 2022, la herramienta Instrumentación también admite C/C++, pero usa instrumentación estática (VSInstr).

Para usar esta herramienta desde la línea de comandos, consulte Generación de perfiles de aplicaciones desde la línea de comandos.

Instrumentación A partir de la versión 16.9 de Visual Studio 2019, la herramienta de instrumentación proporciona instrumentación dinámica para .NET Core, .NET 5+ y .NET Framework, pero no para C o C++. Esta herramienta usa una versión de VSInstr.exe que admite la instrumentación dinámica. Accede a esta herramienta mediante el Generador de perfiles de rendimiento (Alt + F2). En el caso de los archivos DLL, debes usar la herramienta de línea de comandos (VSInstr) en su lugar.

Herramienta de instrumentación estática

VSInstr A partir de Visual Studio 2022, versión 17.6 Preview 2, la herramienta Instrumentación usa VSInstr para la compatibilidad con C/C++. VSInstr también se usa para escenarios de la línea de comandos y funciona para aplicaciones de .NET Framework y C/C++. Para obtener más información, consulta: Recopilación de datos detallados de tiempo para una aplicación independiente mediante la línea de comandos del generador de perfiles.