Sur quelle technologie est basée la nouvelle plate-forme de compteur de performance de Windows ?

| Microsoft MSDN France | Jérôme Lambert |

Retrouvez l'intégralité des questions / réponses sur le développement sous Windows 7 dans l'article suivant.

Commentez cet article : Commentez ♪

- Titre : Sur quelle technologie est basée la nouvelle plate-forme de compteur de performance de Windows ?

- Auteurs : Microsoft MSDN France, Jérôme Lambert

- Parution : 18 avril 2010

- Licence : Copyright ® 2011 Microsoft MSDN France. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Sur quelle technologie est basée la nouvelle plate-forme de compteur de performance de Windows ?

I - Sur quelle technologie est basée la nouvelle plate-forme de compteur de performance de Windows ?

Les nouveaux compteurs de performances de Windows sont basés sur Event Tracing for Windows (http://msdn.microsoft.com/fr-fr/library/aa363668.aspx). Ils fournissent de meilleures performances et une meilleure fiabilité, en permettant une collecte de données et de rapports, plus rapides, avec moins de consommation mémoire, tout en évitant l'enregistrement dans le registre Windows et le partage de mémoire.

Les développeurs n'ont plus besoin d'écrire et d'enregistrer des Dll pour ajouter à leurs applications des compteurs de performance. En fait, ils n'ont plus besoin d'écrire de code du tout. À la place, ils créent des fichiers manifestes au format XML, qui décrivent les compteurs, et avec l'outil CTRPP.EXE, ils créent les coquilles C, qu'ils peuvent alors intégrer à leurs applications.

Le code généré par CTRPP.EXE, appelle directement les APIs PerfLib V 2.0 pour enregistrer les compteurs.

Exemple de manifeste

<instrumentationManifest>
<instrumentation>
<Counters>
<Provider         callback="custom"
providerName="FournisseurSimpleDeCompteurs"
applicationIdentity="TestPerfLibV2.exe"
providerType="userMode"
providerGuid="{A64503B4-43DD-430d-8EFD-9DB77DBF0D17}"
>
<counterSet
guid="{8B52B3AC-B74C-4772-82E3-E6A114AA3688}"
uri ="EV.Compteurs.TestSimple"
name=".À Test de compteurs"
description="Test de création de compteurs avec l'architecture V 2.0"
instances="single">

<counter id="1"
uri="EV.Compteurs.TestSimple.Compteur1"
name="Compteur1"
type="perf_counter_rawcount"
detailLevel="standard"
description="Ceci est un test de compteur simple"
defaultScale="-1">
</counter>
</counterSet>

</Provider>

</Counters>

</instrumentation >
</instrumentationManifest>

Exemple d'appel

ULONG PerfAutoInitialize(
void
)
{
ULONG Status = ERROR_SUCCESS;

Status = PerfStartProvider(
(LPGUID) & ProviderGuid_TestPerfLibV2_1,
(PERFLIBREQUEST) ControlCallback_TestPerfLibV2_1,
& hDataSource_TestPerfLibV2_1);
if (Status != ERROR_SUCCESS) {
goto Cleanup;
}

Status = PerfSetCounterSetInfo(
hDataSource_TestPerfLibV2_1,
(PPERF_COUNTERSET_INFO) & CtrSet_TestPerfLibV2_1_1,
dwCtrSet_TestPerfLibV2_1_1);
if (Status != ERROR_SUCCESS) {
goto Cleanup;
}

Cleanup:
if (Status != ERROR_SUCCESS) {
PerfStopProvider(hDataSource_TestPerfLibV2_1);
}
return Status;
}

Pour plus d'infos

- Pour l'article complet, suivez le guide : http://msdn.microsoft.com/fr-fr/visualc/bb979611

- MSDN : http://msdn.microsoft.com/fr-fr/windows/default.aspx

- Le coach Windows 7 : http://msdn.microsoft.com/fr-fr/windows/msdn.coach.windows7

- Kit de développement pour Windows 7 : http://msdn.microsoft.com/fr-fr/windows/gg398052.aspx