Scrieți același contor de performanță din mai multe procese

Utilizez noul System.Diagnostics.PerformanceData set de api pentru a scrie la contoare mea și ar dori să increment/decrement un singur contor de la mai multe procese simultan.

Am încercat să dezamăgesc CounterSetInstanceType în diverse moduri fără succes:

Dacă folosesc Multiple sau MultipleAggregate, văd întotdeauna o singură instanță în perfmon, dar există într-adevăr un contor separat pentru fiecare proces și se suprascrie unul pe altul. Același comportament se întâmplă cu un tip de contor singular.

Când încerc să folosesc un monitor de performanță de tip gloablAggregate, nu par să citească deloc valorile.

0

1 răspunsuri

Răspunzând la întrebarea mea:

As documented here: http://msdn.microsoft.com/en-us/library/windows/desktop/ee781345%28v=vs.90%29.aspx

Trebuie să specificați modul de agregare a contoarelor în fișierul manifest (prin setarea atributului agregat pentru fiecare numărător).

Se pare că acest lucru nu va face ca contoarele să rămână la 0/undefined.

În cazul globalAggregate funcționează perfect.

În cazul multipleAggregate, acest lucru are doar un impact asupra instanței _Total care este creată automat pentru contor (ca rezultat al definirii acesteia ca multipleAggregate). Toate celelalte cazuri rămân la vechiul comportament.

Există, de asemenea, pare a fi un tip de contor "MultipleInstanceAggregate" totuși, în măsura în care pot spune că este neacceptat de schema manifestă. (Consultați: http://msdn.microsoft.com/en- ne/biblioteca/system.diagnostics.performancedata.countersetinstancetype )

0
adăugat