Cómo: Instrumentar un servicio nativo y recopilar datos detallados de control de tiempo utilizando 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 instrumentar un servicio nativo (C/C++) y recopilar datos de control de tiempo detallados.
Nota
No puede generar perfiles de un servicio con el método de instrumentación si el servicio no se puede reiniciar después de iniciar el equipo, como por ejemplo un servicio que se inicia solamente cuando se inicia el sistema operativo.
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 control de tiempo detallados de un servicio nativo utilizando el método de instrumentación, utilice la herramienta VSInstr.exe para generar una versión instrumentada del componente. A continuación, reemplace la versión no instrumentada del servicio por la versión instrumentada, asegurándose de que el servicio se configura para iniciarse manualmente. A continuación, inicie el generador de perfiles.
Cuando se inicia el servicio, los datos de control de tiempo se recopilan automáticamente 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, desactive el servicio y, a continuación, cierre explícitamente el generador de perfiles.
Iniciar la aplicación con el generador de perfiles
Para iniciar la generación de perfiles de un servicio nativo
Abra una ventana de símbolo del sistema.
Utilice la herramienta VSInstr para generar una versión instrumentada del archivo binario del servicio.
Reemplace el binario original por la versión instrumentada. En el Administrador de control de servicios de Windows, asegúrese de que el Tipo de inicio del servicio está establecido en Manual.
Inicie el generador de perfiles. Escriba:
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 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 propietario del proceso se muestra en la columna Nombre de usuario de la pestaña Procesos del Administrador de tareas de Windows.
Habilita la generación de perfiles de procesos en otros inicios de sesión. 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.
/waitstart[:Interval]
Especifica el número de segundos de espera para que el generador de perfiles se inicialice antes de que devuelva un error. Si no se especifica Interval, el generador de perfiles esperará indefinidamente. De manera predeterminada, /start termina inmediatamente.
Para iniciar el generador de perfiles con la recolección de datos en pausa, agregue la opción /globaloff a la línea de comandos /start. 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.
Inicie el servicio en el Administrador de control de servicios.
Controlar la recolección de datos
Cuando se está ejecutando el servicio, puede utilizar las opciones de VSPerfCmd.exe para iniciar y detener la escritura de datos en el archivo de datos del generador de perfiles. 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 un servicio.
Para iniciar y detener la recolección de datos
Los siguientes pares de opciones de VSPerfCmd 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
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 de 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, detenga el servicio que está ejecutando el componente instrumentado y, a continuación, llame a la opción VSPerfCmd/shutdown para desactivar el generador de perfiles y cerrar el archivo de datos de generación de perfiles.
Para finalizar una sesión de generación de perfiles
Detenga el servicio en el Administrador de control de servicios.
Cierre el generador de perfiles. Escriba:
VSPerfCmd /shutdown
Reemplace el módulo instrumentado con el original. Si es necesario, vuelva a configurar el Tipo de inicio del servicio.
Vea también
Conceptos
Generación de perfiles de servicio desde la línea de comandos
Otros recursos
Vistas de datos del método de instrumentación del generador de perfiles