1. Definiciones de recopilador

Windows Performance Recorder (WPR) admite actualmente tres tipos de recopiladores: el recopilador del sistema, los recopiladores de eventos y un recopilador de eventos del montón. La definición del recopilador del sistema especifica tamaños de búfer y otros atributos para las sesiones de registrador del sistema de seguimiento de eventos para Windows (ETW) que funcionan junto con el registrador de kernel de NT. Las definiciones del recopilador de eventos y montón especifican tamaños de búfer y otros atributos para las sesiones de usuario de ETW.

El orden de definición del recopilador está restringido por el esquema WPR. En el archivo .wprp, las definiciones del recopilador del sistema deben preceder a las definiciones del recopilador de eventos. Estas definiciones deben preceder a la definición del recopilador del montón (si existe una definición del recopilador del montón). El esquema WPR se define en el esquema WPRControlProfiles.

Atributos del recopilador

Los recopiladores tienen los siguientes atributos obligatorios:

  • Id: identificador de cadena único que hace referencia a la definición del recopilador en el archivo .wprp.

  • Nombre: nombre del recopilador; por ejemplo, "Recopilador de WPR". El nombre del recopilador del sistema debe ser "Registrador de kernel NT".

Las definiciones del recopilador deben contener las siguientes definiciones de tamaño de búfer:

  • BufferSize: especifica el tamaño de un único búfer, en kilobytes (KB).

  • Búferes: especifica el número de búferes o, si el atributo PercentageOfTotalMemory está establecido en "true", el porcentaje de memoria total que se va a usar para el almacenamiento en búfer.

Para obtener más información sobre los búferes, vea Modo de registro.

Ejemplos de definición de recopilador

En el ejemplo de código siguiente se muestra una definición del recopilador del sistema y una definición del recopilador de eventos.

<SystemCollector
  Id="WPRSystemCollector"
  Name="NT Kernel Logger"
  FileName="WPRKernel.etl">
  <BufferSize
    Value="512"/>
  <Buffers
    Value="3"
    PercentageOfTotalMemory="true"/>
</SystemCollector>

<EventCollector
  Id="WPREventCollector"
  Name="WPR Event Collector"
  FileName="somefilename.etl">
  <BufferSize
    Value="128"/> 
  <Buffers
    Value="64"/>
</EventCollector>

<HeapEventCollector
  Id="Base_Heap_Collector"
  Name="Base Heap Collector"
  FileName="heap.etl">
</HeapEventCollector>

Ejemplos de herencia

Windows Performance Recorder admite la herencia de sus objetos mediante el Base="" atributo en el esquema XML del perfil de WPR. Esto permite que las adiciones o especializaciones de objetos se compilen progresivamente mientras se agrega una nueva utilización de definiciones comunes.

La complejidad y los efectos secundarios no deseados pueden producirse en determinados escenarios; en esta sección se describen ejemplos y procedimientos recomendados.

Ejemplo 1

ejemplo de herencia

Si un perfil A quiere usar el recopilador de eventos A con algunas modificaciones, puede definir un recopilador A2 que derive del recopilador A (Base="Collector A") y, a continuación, haga referencia a ese recopilador A2. Esto se recomienda porque solo el objeto recopilador deriva de otro objeto recopilador y se hace referencia directamente a él.

Ejemplo 2

ejemplo de herencia 2

Un perfil Perfil A hace referencia a un recopilador A. Otro perfil de perfil B requiere cambios en el perfil A para que se derive de él y especifique sus cambios directamente en su definición. Esto se recomienda porque solo el objeto de perfil deriva de otro objeto de perfil.

Ejemplo 3

ejemplo de herencia 3

Un perfil Perfil A hace referencia a un recopilador A. Un recopilador A2 deriva del recopilador A. Por último, el perfil B deriva del perfil A y también hace referencia al recopilador A al que ya se hace referencia en el perfil primario del perfil B.

En este caso, es ambiguo cómo se debe evaluar la definición del recopilador A2 . En un caso, la derivación del perfil tiene prioridad y, en otra, la derivación del recopilador tiene prioridad. Esta práctica no se recomienda porque la ordenación no está definida y puede dar lugar a resultados diferentes en función de la ordenación de las operaciones.

En función de esto, nunca debe combinar derivaciones en varios tipos de objetos.

Creación de perfiles de grabación

2. Definiciones del proveedor de eventos y del sistema

Referencia XML del perfil de grabación