1. Définitions du collecteur
L’Enregistreur de performances Windows (WPR) prend actuellement en charge trois types de collecteurs : le collecteur système, les collecteurs d’événements et un collecteur d’événements de tas. La définition du collecteur système spécifie les tailles de mémoire tampon et d’autres attributs pour les sessions d’enregistreur d’événements pour Windows (ETW) qui fonctionnent avec l’enregistreur d’événements du noyau NT. Les définitions de collecteur d’événements et de tas spécifient des tailles de mémoire tampon et d’autres attributs pour les sessions utilisateur ETW.
L’ordre de définition du collecteur est limité par le schéma WPR. Dans le fichier .wprp, les définitions du collecteur système doivent précéder les définitions du collecteur d’événements. Ces définitions doivent toutes deux précéder la définition du collecteur de tas (si une définition de collecteur de tas est présente). Le schéma WPR est défini dans le schéma WPRControlProfiles.
Attributs du collecteur
Les collecteurs ont les attributs obligatoires suivants :
Id : identificateur de chaîne unique qui fait référence à la définition du collecteur dans le fichier .wprp.
Nom : nom du collecteur ; par exemple, « WPR Collector ». Le nom du collecteur système doit être « NT Kernel Logger ».
Les définitions de collecteur doivent contenir les définitions de taille de mémoire tampon suivantes :
BufferSize : spécifie la taille d’une mémoire tampon unique, en kilo-octets (Ko).
Mémoires tampons : spécifie le nombre de mémoires tampons ou, si l’attribut PercentageOfTotalMemory a la valeur « true », le pourcentage de mémoire totale à utiliser pour la mise en mémoire tampon.
Pour plus d’informations sur les mémoires tampons, consultez Mode journalisation.
Exemples de définition de collecteur
L’exemple de code suivant montre une définition de collecteur système et une définition de collecteur d’événements.
<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>
Exemples d'héritage
L’Enregistreur de performances Windows prend en charge l’héritage de ses objets à l’aide de l’attribut Base=""
dans le schéma XML du profil WPR. Cela permet de créer progressivement des ajouts ou des spécialisations d’objets tout en ajoutant la réutilisation de définitions courantes.
Une complexité inattendue et des effets secondaires peuvent se produire dans certains scénarios; cette section décrit des exemples et des meilleures pratiques recommandées.
Exemple 1
Si un profil Profil A souhaite utiliser le collecteur d’événements A avec certaines modifications, il peut définir un collecteur collecteur A2 qui dérive du collecteur A (Base="Collecteur A »), puis référencer ce collecteur collecteur A2. Cela est recommandé, car seul l’objet collecteur dérive d’un autre objet collecteur et il est référencé directement.
Exemple 2
Un profil Profil A fait référence à un collecteur A. Un autre profil Profil B nécessite des modifications du profil A afin qu’il en dérive et spécifie ses modifications directement dans sa définition. Cela est recommandé, car seul l’objet de profil dérive d’un autre objet de profil.
Exemple 3
Un profil Profil A fait référence à un collecteur A. Un collecteur collecteur A2 dérive du collecteur A. Enfin, le profil B dérive à la fois du profil A et fait également référence au collecteur A déjà référencé dans le profil parent du profil B.
Dans ce cas, la façon dont la définition du collecteur A2 doit être évaluée est ambiguë. Dans un cas, la dérivation de profil est prioritaire, et dans un autre, la dérivation du collecteur est prioritaire. Cette pratique n’est pas recommandée, car l’ordre n’est pas défini et peut entraîner des résultats différents en fonction de l’ordre des opérations.
Sur cette base, vous ne devez jamais combiner des dérivations sur plusieurs types d’objets.
Rubriques connexes
Création de profils d’enregistrement