Cómo: Instrumentar una aplicación web ASP.NET compilada dinámicamente y recopilar datos de memoria mediante la línea de comandos del generador de perfiles

En este tema se describe cómo utilizar las herramientas de línea de comandos de las herramientas de generación de perfiles de Visual Studio para recopilar datos detallados de asignación de memoria y duración de objetos de .NET de una aplicación web ASP.NET compilada dinámicamente mediante el método de instrumentación de generación de perfiles.

[!NOTA]

Las herramientas de línea de comandos de las herramientas de generación de perfiles se encuentran en el subdirectorio \Team Tools\Performance Tools del directorio de instalación de Visual Studio.En equipos de 64 bits, están disponibles versiones de 64 bits y de 32 bits de las herramientas.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 de símbolo del sistema o agregarla al propio comando.Para obtener más información, vea Especificar la ruta de acceso a las herramientas de línea de comandos de Herramientas de generación de perfiles.

Para recopilar datos de rendimiento de una aplicación web ASP.NET, debe modificar el archivo web.config de la aplicación de destino para permitir que la herramienta VSInstr.exe instrumente los archivos de aplicación compilados dinámicamente.A continuación, utiliza la herramienta VSPerfCLREnv.cmd para configurar el servidor que hospeda la aplicación web ASP.NET y habilita la generación de perfiles de memoria de .NET mediante el establecimiento de las variables de entorno adecuadas y el reinicio del equipo.

Para recopilar datos, inicie el generador de perfiles y, a continuación, ejecute la aplicación de destino.Mientras el generador de perfiles esté adjunto a la aplicación, puede pausar y reanudar la recolección de datos. Una vez recopilados los datos adecuados, cierre la aplicación, cierre el proceso de trabajo de Internet Information Services (IIS) y, a continuación, apague el generador de perfiles.

Tras completar el trabajo de generación de perfiles, restaure el estado original del archivo web.config y el servidor web.

Configurar la aplicación web ASP.NET y el servidor web

Para configurar la aplicación web ASP.NET y el servidor web

  1. Modifique el archivo web.config de la aplicación de destino.Vea Cómo: Modificar archivos web.config para instrumentar y generar perfiles de aplicaciones web ASP.NET compiladas dinámicamente.

  2. En el equipo que hospeda la aplicación web, abra una ventana del símbolo del sistema.

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

    VSPerfClrEnv /globaltracegc

    O bien

    VSPerfClrEnv /globaltracegclife

    • /globaltracegc habilita la recolección de datos de asignación de memoria.

    • /globaltracegclife habilita la recolección tanto de datos de asignación de memoria como de datos de duración de objetos.

  4. Reinicie el equipo.

Ejecutar la sesión de generación de perfiles

Para generar los perfiles de la aplicación web ASP.NET

  1. 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 siguientes opciones con la opción /start:trace.

    [!NOTA]

    Las opciones /user y /crosssession son necesarias normalmente para aplicaciones ASP.NET.

    Opción

    Descripción

    /user:[Domain\]UserName

    Especifica el dominio y el nombre de usuario opcionales de la cuenta propietaria del proceso de trabajo de ASP.NET.Esta opción es necesaria si el proceso se está ejecutando como otro usuario distinto del usuario que inició la sesión.El nombre 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 se ejecuta en una sesión diferente.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

    Se utiliza únicamente 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.

  2. Inicie la aplicación web ASP.NET de la manera habitual.

Controlar la recolección de datos

Mientras se ejecuta 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 de todos los procesos.

    /processon:PID/processoff:PID

    Inicia (/processon) o detiene (/processoff) la recolección de datos del proceso especificado por el identificador del proceso (PID).

    /threadon:TID/threadoff:TID

    Inicia (/threadon) o detiene (/threadoff) la recolección de datos del subproceso especificado por el identificador del subproceso (TID).

  • También puede usar la opción VSPerfCmd.exe/mark para insertar una marca de generación de perfiles en el archivo de datos.El comando /mark agrega un identificador, una marca de tiempo y una cadena de texto opcional definida por el usuario.Las marcas se pueden utilizar para filtrar los datos que se muestran en las vistas de informes y datos del generador de perfiles.

Finalizar la sesión de generación de perfiles

Para finalizar una sesión de generación de perfiles, cierre la aplicación web ASP.NET de destino, detenga Internet Information Services (IIS) para detener el proceso perfilado y, a continuación, apague el generador de perfiles.A continuación, reinicie IIS.

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

  1. Cierre la aplicación web ASP.NET.

  2. Cierre el proceso de trabajo de ASP.NET restableciendo Internet Information Services (IIS).Tipo:

    IISReset /stop

  3. Apague el generador de perfiles.Tipo:

    VSPerfCmd/shutdown

  4. Reinicie IIS.Tipo:

    IISReset /start

Restaurar la configuración del equipo y la aplicación

Después de completar la generación de perfiles, reemplace el archivo web.config, borre las variables de entorno de generación de perfiles y reinicie el equipo para restaurar el servidor y la aplicación ASP.NET a sus estados originales.

Para restaurar la configuración del equipo y la aplicación

  1. Reemplace el archivo web.config con una copia del archivo original.

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

    VSPerfCmd /globaloff

  3. Reinicie el equipo.

Vea también

Conceptos

Generar perfiles mediante línea de comandos de aplicaciones web ASP.NET

Otros recursos

Vistas de datos de memoria de .NET de las herramientas de generación de perfiles