Compartir vía


Instrumentar un componente de .NET Framework independiente y recopilar datos de control de tiempo con el generador de perfiles desde la línea de comandos

En este tema se explica cómo usar las herramientas de línea de comandos para generación de perfiles en Visual Studio para instrumentar un componente de .NET Framework, como un archivo .exe o .dll, y para recopilar datos de control de tiempo detallados.

Nota:

Para .NET Core y .NET 5+ consulte Medir el rendimiento de la aplicación desde la línea de comandos para escenarios de instrumentación de línea de comandos. VSInstr no se admite para archivos binarios de .NET Core y .NET 5+. A partir de Visual Studio 2022, versión 17.6, también recomendamos usar VSDiagnostics.exe para escenarios de .NET Framework, ya que proporciona instrumentación dinámica.

Para recopilar datos detallados de control de tiempo de un componente de .NET Framework mediante el método de instrumentación, use la herramienta VSInstr.exe para generar una versión instrumentada del componente y la herramienta VSPerfCLREnv.cmd para inicializar las variables de entorno de generación de perfiles. A continuación, inicie el generador de perfiles.

La ruta de acceso a las herramientas de generación de perfiles es Microsoft Visual Studio\version\Enterprise\Team Tools\DiagnosticsHub\Collector.

Nota:

Para utilizar las herramientas de línea de comandos del generador de perfiles, debe agregar la ruta de acceso de las herramientas a la variable de entorno PATH de la ventana Símbolo del sistema o agregarla al propio comando.

Cuando se ejecute el componente instrumentado, los datos de tiempo se recopilarán inmediatamente en un archivo de datos. Puede pausar y reanudar la recolección de datos durante la sesión de generación de perfiles.

Para finalizar una sesión de generación de perfiles, cierre la aplicación de destino y cierre explícitamente el generador de perfiles. En la mayoría de los casos, recomendamos borrar las variables de entorno de generación de perfiles al final de una sesión.

Iniciar la sesión de generación de perfiles

Para iniciar la generación de perfiles mediante el método de instrumentación:

  1. Abra una ventana de símbolo del sistema. Si es necesario, agregue el directorio de herramientas del generador de perfiles a la variable de entorno PATH. La ruta de acceso no se agrega en la instalación.

  2. Utilice la herramienta VSInstr para generar una versión instrumentada de la aplicación de destino.

  3. Inicialice las variables de entorno de generación de perfiles de .NET Framework. Tipo:

    VSPerfClrEnv /traceon

  4. Inicie el generador de perfiles. Tipo:

    VSPerfCmd /start:trace /output:OutputFile [Options]

    • La opción /start:trace inicializa el generador de perfiles.

    • La opción /output:OutputFile es necesaria con /start. OutputFile especifica el nombre y la ubicación del archivo de datos de generación de perfiles (.vsp).

      Puede usar cualquiera de las opciones siguientes con la opción /start:trace.

    Opción Descripción
    /user:[Domain\]UserName Especifica el dominio y el nombre de usuario de la cuenta propietaria del proceso para el que se han generado perfiles. Esta opción solamente es necesaria si el proceso se está ejecutando como otro usuario distinto del usuario que inició sesión. El propietario del proceso se muestra en la columna Nombre de usuario de la pestaña Procesos del Administrador de tareas de Windows.
    /crosssession Habilita la generación de perfiles de procesos en otras sesiones. Esta opción es necesaria si la aplicación ASP.NET se ejecuta en otra sesión. El identificador de sesión se muestra en la columna Id. de sesión de la pestaña Procesos del Administrador de tareas de Windows. /CS se puede especificar como una abreviatura de /crosssession.
    /globaloff Inicia el generador de perfiles con la recolección de datos en pausa. Utilice /globalon para reanudar la generación de perfiles.
    /counter:Config Recopila información del contador de rendimiento del procesador especificado en Config. La información del contador se agrega a los datos recopilados en cada evento de generación de perfiles.
    /wincounter:WinCounterPath Especifica un contador de rendimiento de Windows que se va a recopilar durante la generación de perfiles.
    /automark:Interval Utilizar solo con /wincounter. Especifica el número de milisegundos entre eventos de recopilación de contadores de rendimiento de Windows. El valor predeterminado es 500 ms.
    /events:Config Especifica un evento de Seguimiento de eventos para Windows (ETW) que se va a recopilar durante la generación de perfiles. Los eventos ETW se recopilan en un archivo .etl independiente.
  5. Inicie la aplicación de destino desde la ventana del símbolo del sistema.

Controlar la recopilación de datos

Durante la ejecución de la aplicación de destino, puede controlar la recolección de datos iniciando o deteniendo la escritura de los datos en un archivo de datos del generador de perfiles mediante el uso de las opciones de VSPerfCmd.exe. Al controlar la recolección de datos, puede recopilar datos de una parte específica de la ejecución de un programa, como por ejemplo el inicio o el cierre de una aplicación.

Para iniciar y detener la recolección de datos:

  • Los siguientes pares de opciones inician y detienen la recolección de datos. Especifique cada opción en una línea de comandos diferente. Puede activar y desactivar la recolección de datos varias veces.

    Opción Descripción
    /globalon /globaloff Inicia ( /globalon) o detiene ( /globaloff) la recolección de datos para todos los procesos.
    /processon:PID/processoff:PID Inicia ( /processon) o detiene ( /processoff) la recolección de datos para el proceso especificado por el identificador de proceso (PID).
    /threadon:TID/threadoff:TID Inicia ( /threadon) o detiene ( /threadoff) la recopilación de datos para el subproceso especificado por el identificador de subproceso (TID).

Finalización de la sesión de generación de perfiles

Para finalizar una sesión de generación de perfiles, cierre la aplicación que está ejecutando el componente instrumentado. Llame a la opción /shutdown de VSPerfCmd para desactivar el generador de perfiles y cerrar el archivo de datos de generación de perfiles. El comando VSPerfClrEnv /off borra las variables de entorno de generación de perfiles.

Para finalizar una sesión de generación de perfiles:

  1. Cierre la aplicación de destino.

  2. Cierre el generador de perfiles. Tipo:

    VSPerfCmd /shutdown

  3. (Opcional) Borre las variables del entorno de generación de perfiles. Tipo:

    VSPerfClrEnv /off