Nouveautés des compteurs de performances

Cette section décrit les nouvelles fonctionnalités ajoutées aux compteurs de performances pour chaque version.

Windows 10 20H1

Si vous lisez les données de performances directement à partir du Registre, vous pouvez désormais effectuer une collection de métadonnées uniquement pour éviter le travail inutile lors de la création d’une liste d’objets et de compteurs de performances disponibles. Si vous utilisez MetadataGlobal au lieu de Global dans votre requête, toutes les DLL de fournisseur avec métadonnées ignorent l’étape de collecte de données, ce qui améliore potentiellement les performances des requêtes sur les systèmes avec de nombreux processus ou threads. Les DLL de fournisseur qui ne sont pas activées pour les métadonnées continuent de fonctionner comme avant.

Si vous fournissez des données de performances à l’aide d’une DLL de performances, vous pouvez implémenter la prise en charge de la collecte de métadonnées uniquement pour éviter la collecte de données inutile. Mettez à jour votre Collect fonction pour répondre aux MetadataGlobal requêtes et MetadataCostly avec uniquement les métadonnées (utilisez PERF_METADATA_NO_INSTANCES ou PERF_METADATA_MULTIPLE_INSTANCES pour NumInstances et omettez tous les PERF_INSTANCE_DEFINITION blocs de la réponse), puis ajoutez une Collect Supports Metadata valeur de Registre avec REG_DWORD la valeur 1 à la sous-clé de Performance votre service.

Windows 7 et Windows Server 2008 R2

L’outil CTRPP a été modifié pour améliorer et simplifier la génération de code. L’outil génère désormais uniquement un fichier d’en-tête et de ressources. Si vous souhaitez utiliser l’ancien comportement de génération de code (non recommandé), vous pouvez utiliser le nouvel -legacy argument.

  • Vous devez maintenant spécifier les nouveaux -o arguments et -rc qui spécifient respectivement le nom et l’emplacement de l’en-tête et du fichier de ressources.
  • Vous pouvez utiliser le nouvel -prefix argument facultatif pour spécifier une chaîne à ajouter au début des variables globales et des fonctions définies dans le fichier d’en-tête généré.
  • Si vous devez mettre à jour votre manifeste de compteurs, l’utilisation de la nouvelle génération de code vous évite d’avoir à fusionner votre implémentation de rappel précédente avec le nouveau code généré, car les rappels ne sont plus inclus dans le code généré.

Un nouvel symbol attribut est disponible pour les éléments de manifeste suivants :

L’attribut symbol est requis pour provider et counterSet, et est facultatif pour counter. L’attribut vous permet de fournir un nom symbolique que vous pouvez utiliser pour référencer chaque élément lors de l’appel des fonctions du fournisseur (par exemple, vous pouvez utiliser le nom symbolique du jeu de compteurs lors de l’appel de PerfCreateInstance).

Windows Vista

L’architecture des compteurs de performances pour fournir des données de compteur a été complètement modifiée pour cette version.

Auparavant, vous utilisiez un fichier INI pour définir vos données de compteur et vous avez implémenté une DLL de performances qui s’exécutait dans le processus du consommateur pour fournir les données lorsqu’un consommateur les demandait. Cette architecture est déconseillée et n’est pas recommandée pour le nouveau code en raison de problèmes de performances et de fiabilité importants.

La nouvelle architecture utilise un manifeste pour définir les données de compteur et exécute du code dans le processus du fournisseur pour fournir les données lorsqu’un consommateur les demande. Pour plus d’informations, consultez Fourniture de données de compteur à l’aide de la version 2.0.

Les fonctions suivantes ont été ajoutées pour cette version :

Les structures suivantes ont été ajoutées pour cette version :

Pour obtenir la liste des éléments XML que vous utilisez dans votre manifeste pour définir vos compteurs, consultez Schéma des compteurs de performances.

Pour plus d’informations sur l’outil de préprocesseur CTRPP qui analyse votre manifeste et génère le code que vous utilisez comme point de départ pour votre fournisseur, consultez CTRPP.