Instrumentación en Visual Studio (C#, Visual Basic, C++, 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ático, que modifica los archivos del programa antes de que se ejecute (VSInstr)
Dinámico, que usa un proceso dinámico en el que no cambia los archivos. Carga los archivos en memoria y, a continuación, los modifica para recopilar la información de instrumentación. Con la herramienta de instrumentación dinámica, obtendrá información más precisa, pero para una parte más pequeña del programa. Puede investigar pequeñas secciones de código.
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 los archivos. Debe ejecutar manualmente VSInstr. Con la nueva herramienta de instrumentación, no es necesario encontrar los archivos. En un programa complicado, encontrar todos los archivos puede ser un proceso difícil y manual.
Instrumentación frente a muestreo
En lo que respecta a la generación de perfiles, hay dos mecanismos de recopilación de datos. Recopilación mediante instrumentación o recopilación mediante muestreo. Para obtener información detallada, consulte 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. Acceda a esta herramienta mediante el Generador de perfiles de rendimiento (Alt + F2). Para obtener más información, consulte el siguiente artículo:
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 el siguiente artículo:
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 (no C/C++). Esta herramienta usa una versión de VSInstr.exe que admite instrumentación dinámica. Acceda a esta herramienta mediante el Generador de perfiles de rendimiento (Alt + F2). En el caso de los archivos DLL, debe usar la herramienta de línea de comandos (VSInstr) en su lugar.
Herramienta de instrumentación estática
vsInstr: a partir de la versión 17.6 de Visual Studio 2022, la herramienta de instrumentación de usa VSInstr para la compatibilidad con C/C++. VSInstr también se usa para escenarios de línea de comandos y funciona para aplicaciones de .NET Framework y C/C++. Para obtener más información, consulte el siguiente artículo: