Cómo: Adjuntar el generador de perfiles a un servicio nativo para recopilar estadísticas de aplicación mediante la línea de comandos
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 adjuntar el generador de perfiles a un servicio nativo y recopilar estadísticas de rendimiento con el método de muestreo.
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.
Mientras el generador de perfiles está adjunto al servicio, puede pausar y reanudar la recolección de datos.
Para finalizar una sesión de generación de perfiles, el generador de perfiles se debe desasociar del servicio y se debe apagar explícitamente.
Iniciar la aplicación con el generador de perfiles
Para adjuntar el generador de perfiles a un servicio nativo, utilice las opciones VSPerfCmd.exe /start y /attach para inicializar el generador de perfiles y adjuntarlo a la aplicación de destino. Puede especificar /start y /attach y sus opciones respectivas en una línea de comandos única. También puede agregar la opción /globaloff para pausar la recolección de datos en el inicio de la aplicación de destino. A continuación, puede utilizar /globalon para empezar a recopilar datos.
Para adjuntar el generador de perfiles a un servicio nativo
Si es necesario, inicie el servicio.
Abra una ventana de símbolo del sistema.
Inicie el generador de perfiles. Escriba:
VSPerfCmd /start:sample /output**:**OutputFile [Options]
La opción /start:sample 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:sample.
Nota
Las opciones /user y /crosssession son necesarias normalmente para servicios.
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.
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.
/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.
Adjunte el generador de perfiles al servicio. Escriba:
**VSPerfCmd /attach:**PID [Sample Event]
PID especifica el identificador de proceso de la aplicación de destino. Puede ver los identificadores de todos los procesos que se están ejecutando en el Administrador de tareas de Windows.
De manera predeterminada, se realiza un muestreo de los datos de rendimiento cada 10.000.000 ciclos de reloj de procesador no detenidos. Esto equivale aproximadamente a una vez cada 10 segundos en un procesador de 1 GHz. Puede especificar una de las siguientes opciones para cambiar el intervalo del ciclo de reloj o especificar otro evento de muestreo.
Evento de muestreo
Descripción
/timer:Interval
Cambia el intervalo de muestreo al número de ciclos de reloj no detenidos especificado en Interval.
/pf[:Interval]
Cambia el evento de muestreo a errores de página. Si se especifica Interval, se establece el número de errores de página entre un muestreo y otro. El valor predeterminado es 10.
/sys [:Interval]
Cambia el evento de muestreo a llamadas al sistema por parte del proceso al kernel del sistema operativo (llamadas syscall). Si se especifica Interval, se establece el número de llamadas entre un muestreo y otro. El valor predeterminado es 10.
/counter:Config
Cambia el evento y el intervalo de muestreo al contador de rendimiento del procesador y al intervalo especificados en Config.
Controlar la recolección de datos
Mientras la aplicación de destino se está ejecutando, 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 una aplicación.
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 del proceso (PID).
/attach: {PID|ProcName} /detach[:{PID|ProcName}]
/attach inicia la recolección de datos para el proceso especificado por el identificador de proceso o por el nombre de proceso. /detach detiene la recolección de datos para el proceso especificado o para todos los procesos si no se especifica uno.
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, el generador de perfiles se debe desasociar del servicio y se debe apagar explícitamente. Puede desasociar el servicio nativo para el que se está realizando la generación de perfiles con el método de muestreo deteniendo el servicio o llamando a la opción VSPerfCmd /detach. 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
Siga uno de estos procedimientos para desasociar el generador de perfiles de la aplicación de destino:
Detenga el servicio.
O bien
Escriba VSPerfCmd /detach
Apague el generador de perfiles. Escriba:
VSPerfCmd /shutdown
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 muestreo del generador de perfiles