Cómo: Adjuntar el generador de perfiles a un servicio .NET para recopilar estadísticas de aplicación mediante la línea de comandosHow to: Attach the profiler to a .NET service to collect application statistics by using the command line

En este artículo se describe cómo usar las herramientas de línea de comandos de las herramientas de generación de perfiles de Programa para la mejoraVisual Studio para adjuntar el generador de perfiles a un servicio de .NET Framework y recopilar estadísticas de rendimiento con el método de muestreo.This article describes how to use Programa para la mejoraVisual Studio Profiling Tools command-line tools to attach the profiler to a .NET Framework service and collect performance statistics by using the sampling method.

Nota

Las características de seguridad mejoradas en Windows 8 y Windows Server 2012 requirieron cambios significativos en la forma en que el generador de perfiles de Visual Studio recopila datos en estas plataformas.Enhanced security features in Windows 8 and Windows Server 2012 required significant changes in the way the Visual Studio profiler collects data on these platforms. Las aplicaciones para UWP también requieren nuevas técnicas de recopilación.UWP apps also require new collection techniques. Consulte Herramientas de rendimiento en aplicaciones de Windows 8 y Windows Server 2012.See Performance Tools on Windows 8 and Windows Server 2012 applications.

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 Programa para la mejoraVisual Studio.Command-line tools of the Profiling Tools are located in the \Team Tools\Performance Tools subdirectory of the Programa para la mejoraVisual Studio installation directory. En equipos de 64 bits, están disponibles versiones de 64 bits y de 32 bits de las herramientas.On 64 bit computers, both 64 bit and 32 bit versions of the tools are available. 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.To use the profiler command-line tools, you must add the tools path to the PATH environment variable of the command prompt window or add it to the command itself. Para obtener más información, vea Especificar la ruta de acceso a las herramientas de línea de comandos.For more information, see Specify the path to command line tools.

Agregar datos de interacción de capas a una ejecución de generación de perfiles requiere procedimientos concretos con las Herramientas de generación de perfiles de la línea de comandos.Adding tier interaction data to a profiling run requires specific procedures with the command line profiling tools. Vea Recopilación de datos de interacción de capas.See Collect tier interaction data.

Para recopilar datos de rendimiento de un servicio de .NET Framework, debe usar la herramienta VSPerfCLREnv.cmd para inicializar las variables de entorno adecuadas.To collect performance data from a .NET Framework service, you must use the VSPerfCLREnv.cmd tool to initialize the appropriate environment variables. A continuación, debe reiniciar el equipo que hospeda el servicio y configurarlo para la generación de perfiles.You must then restart the computer that hosts the service and configure that computer for profiling. Después debe adjuntar el generador de perfiles al proceso del servicio.You then attach the profiler to the service process. Mientras el generador de perfiles está adjunto al servicio, puede pausar y reanudar la recolección de datos.When the profiler is attached to the service, you can pause and resume data collection.

Para finalizar una sesión de generación de perfiles, el generador de perfiles se debe desasociar del servicio y se debe cerrar explícitamente.To end a profiling session, the profiler must be detached from the service and the profiler must be explicitly shut down. En la mayoría de los casos, recomendamos borrar las variables de entorno de generación de perfiles al final de una sesión.In most cases, we recommend clearing the profiling environment variables at the end of a session.

Anexión del generador de perfilesAttach the profiler

Para adjuntar el generador de perfiles a un servicio de .NET FrameworkTo attach the profiler to a .NET Framework service

  1. Instale el servicio.Install the service.

  2. Abra una ventana de símbolo del sistema.Open a command prompt window.

  3. Inicialice las variables del entorno de generación de perfiles.Initialize the profiling environment variables. Tipo:Type:

    VSPerfClrEnv /globalsampleon [/samplelineoff]VSPerfClrEnv /globalsampleon [/samplelineoff]

    • /globalsampleon habilita el muestreo./globalsampleon enables sampling.

    • /samplelineoff desactiva la asignación de los datos recopilados a líneas de código fuente específicas./samplelineoff disables the assignment of collected data to specific source code lines. Cuando se especifica esta opción, los datos se asignan solo a funciones.When this option is specified, data is assigned only to functions.

  4. Reinicie el equipo.Restart the computer.

  5. Abra una ventana de símbolo del sistema.Open a command prompt window.

  6. Inicie el generador de perfiles.Start the profiler. Tipo:Type:

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

    • La opción /start:sample inicializa el generador de perfiles.The /start:sample option initializes the profiler.

    • La opción /output:OutputFile es necesaria con /start.The /output:OutputFile option is required with /start. OutputFile especifica el nombre y la ubicación del archivo de datos de generación de perfiles (.vsp).OutputFile specifies the name and location of the profiling data (.vsp) file.

      Puede usar cualquiera de las siguientes opciones con la opción /start:sample.You can use any of the following options with the /start:sample option.

    Nota

    Normalmente, las opciones /user y /crosssession son necesarias para servicios.The /user and /crosssession options are usually required for services.

    OpciónOption DescriptionDescription
    /user :[Domain\]UserName/user :[Domain\]UserName Especifica el dominio y el nombre de usuario de la cuenta propietaria del proceso para el que se han generado perfiles.Specifies the domain and user name of the account that owns the profiled process. Esta opción solamente es necesaria si el proceso se está ejecutando como otro usuario distinto del usuario que inició sesión.This option is required only if the process is running as a user other than the logged on user. El propietario del proceso se muestra en la columna Nombre de usuario de la pestaña Procesos del Administrador de tareas de Windows.The process owner is listed in the User Name column on the Processes tab of Windows Task Manager.
    /crosssession/crosssession Habilita la generación de perfiles de procesos en otras sesiones.Enables profiling of processes in other sessions. Esta opción es necesaria si el servicio se ejecuta en una sesión diferente.This option is required if the service is running in a different session. 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.The session id is listed in the Session ID column on the Processes tab of Windows Task Manager. /CS se puede especificar como una abreviatura de /crosssession./CS can be specified as an abbreviation for /crosssession.
    /wincounter : WinCounterPath/wincounter : WinCounterPath Especifica un contador de rendimiento de Windows que se va a recopilar durante la generación de perfiles.Specifies a Windows performance counter to be collected during profiling.
    /automark : Interval/automark : Interval Utilizar solo con /wincounter.Use with /wincounter only. Especifica el número de milisegundos entre eventos de recopilación de contadores de rendimiento de Windows.Specifies the number of milliseconds between Windows performance counter collection events. El valor predeterminado es 500 ms.Default is 500 ms.
    /events : Config/events : Config Especifica un evento de Seguimiento de eventos para Windows (ETW) que se va a recopilar durante la generación de perfiles.Specifies an Event Tracing for Windows (ETW) event to be collected during profiling. Los eventos ETW se recopilan en un archivo (.etl) independiente.ETW events are collected in a separate (.etl) file.
  7. Si es necesario, inicie el servicio.If necessary, start the service.

  8. Adjunte el generador de perfiles al servicio.Attach the profiler to the service. Tipo:Type:

    VSPerfCmd /attach : {PID|ProcName} [Sample Event] [/targetclr:Version]VSPerfCmd /attach : {PID|ProcName} [Sample Event] [/targetclr:Version]

    • Especifique el identificador de proceso (PID) o nombre de proceso (ProcName) del servicio.Specify the process ID (PID) or process name (ProcName) of the service. Puede ver los nombres e identificadores de todos los procesos que se están ejecutando en el Administrador de tareas de Windows.You can view the process IDs and names of all running processes in Windows Task Manager.

      De manera predeterminada, se realiza un muestreo de los datos de rendimiento cada 10.000.000 ciclos de reloj de procesador no detenidos.By default, performance data is sampled every 10,000,000 non-halted processor clock cycles. En un procesador de 1 GH, equivale aproximadamente a 100 muestras por segundo.This is approximately 100 samples per second on a 1GH processor. Puede especificar una de las siguientes opciones para cambiar el intervalo del ciclo de reloj o especificar otro evento de muestreo.You can specify one of the following options to change the clock cycle interval or to specify a different sampling event.

    Evento de muestreoSample Event DescriptionDescription
    /timer : Interval/timer : Interval Cambia el intervalo de muestreo al número de ciclos de reloj no detenidos especificado en Interval.Changes the sampling interval to the number of non-halted clock cycles specified by Interval.
    /pf[:Interval]/pf[:Interval] Cambia el evento de muestreo a errores de página.Changes the sampling event to page faults. Si se especifica Interval, se establece el número de errores de página entre un muestreo y otro.If Interval is specified, sets the number of page faults between samples. El valor predeterminado es 10.Default is 10.
    /sys[:``Interval]/sys[:``Interval] Cambia el evento de muestreo a llamadas al sistema por parte del proceso al kernel del sistema operativo (llamadas syscall).Changes the sampling event to system calls from the process to the operating system kernel (syscalls). Si se especifica Interval, se establece el número de llamadas entre un muestreo y otro.If Interval is specified, sets the number of calls between samples. El valor predeterminado es 10.Default is 10.
    /counter : Config/counter : Config Cambia el evento y el intervalo de muestreo al contador de rendimiento del procesador y al intervalo especificados en Config.Changes the sampling event and interval to the processor performance counter and interval specified in Config.
    • targetclr: Version especifica la versión de Common Language Runtime (CLR) para generar perfiles cuando se carga más de una versión del runtime en una aplicación.targetclr: Version specifies the version of the common language runtime (CLR) to profile when more than one version of the runtime is loaded in an application. Opcional.Optional.

Controlar la recopilación de datosControl data collection

Cuando se está ejecutando el servicio, puede usar las opciones de VSPerfCmd.exe para iniciar y detener la escritura de datos en el archivo de datos del generador de perfiles.When the service is running, you can use VSPerfCmd.exe options to start and stop the writing of data to the profiler data file. 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.Controlling data collection enables you to collect data for a specific part of program execution, such as starting or shutting down the application.

Para iniciar y detener la recolección de datosTo start and stop data collection

  • Los siguientes pares de opciones de VSPerfCmd inician y detienen la recolección de datos.The following pairs of VSPerfCmd options start and stop data collection. Especifique cada opción en una línea de comandos diferente.Specify each option on a separate command line. Puede activar y desactivar la recolección de datos varias veces.You can turn data collection on and off multiple times.

    OpciónOption DescriptionDescription
    /globalon /globaloff/globalon /globaloff Inicia (/globalon) o detiene (/globaloff) la recolección de datos para todos los procesos.Starts (/globalon) or stops (/globaloff) data collection for all processes.
    /processon : PID /processoff : PID/processon : PID /processoff : PID Inicia (/processon) o detiene (/processoff) la recolección de datos para el proceso especificado por el identificador de proceso (PID).Starts (/processon) or stops (/processoff) data collection for the process specified by the process ID (PID).
    /attach:{PID|ProcName} /detach[:{PID|ProcName}]/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./attach starts to collect data for the process specified by the process ID or process name. /detach detiene la recolección de datos para el proceso especificado o para todos los procesos si no se especifica uno./detach stops data collection for the specified process or for all processes if a specific process is not specified.

Finalización de la sesión de generación de perfilesEnd the profiling session

Para finalizar una sesión de generación de perfiles, el generador de perfiles se debe desasociar de todos los procesos perfilados y se debe apagar explícitamente.To end a profiling session, the profiler must be detached from all profiled processes and the profiler must be explicitly shut down. Puede desasociar el generador de perfiles de una aplicación para la que se generan perfiles con el método de muestreo cerrando la aplicación o llamando a la opción VSPerfCmd /detach.You can detach the from an application profiled with the sampling method by closing the application or by calling the VSPerfCmd /detach option. Después, llame a la opción VSPerfCmd /shutdown para desactivar el generador de perfiles y cerrar el archivo de datos de generación de perfiles.You then call the VSPerfCmd /shutdown option to turn the profiler off and close the profiling data file.

El comando VSPerfClrEnv /globaloff borra las variables de entorno de generación de perfiles, pero la configuración del sistema no se restablece hasta que se reinicia el equipo.The VSPerfClrEnv /globaloff command clears the profiling environment variables, but the system configuration is not reset until the computer is restarted.

Para finalizar una sesión de generación de perfilesTo end a profiling session

  1. Siga uno de estos procedimientos para desasociar el generador de perfiles de la aplicación de destino:Do one of the following to detach the profiler from the target application:

    • Detenga el servicio.Stop the service.

      O bien-or-

    • Escriba VSPerfCmd /detachType VSPerfCmd /detach

  2. Cierre el generador de perfiles.Shut down the profiler. Tipo:Type:

    VSPerfCmd /shutdownVSPerfCmd /shutdown

  3. (Opcional) Borre las variables del entorno de generación de perfiles.(Optional) Clear the profiling environment variables. Tipo:Type:

    VSPerfClrEnv /globaloffVSPerfClrEnv /globaloff

  4. Reinicie el equipo.Restart the computer.

Vea tambiénSee also

Servicios de generación de perfiles Profile services
Vistas de datos del método de muestreoSampling method data views