Programiranje

Kako delati s števci uspešnosti v jeziku C #

Windows spremlja procese in storitve, ki se izvajajo v vašem sistemu, s sledenjem niti, ki se trenutno izvajajo, pomnilniku CLR itd. Pogosto bi morali meriti zmogljivost računalniških sistemov ali aplikacij, ki se na njih izvajajo, v skladu z na meritve, kot so poraba virov v sistemu, storitve, ki se izvajajo v sistemu, ali zmogljivost naprav, priključenih na sistem.

Števci zmogljivosti (funkcija, ki je privzeto na voljo) nam omogočajo zajem, objavo in analizo podatkov o zmogljivosti, povezanih z eno ali več aplikacijami ali storitvami, ki se izvajajo v sistemu ali sistemu kot celoti.

Med gradnjo aplikacij boste morda pogosto morali spremljati njeno delovanje (porabo virov ali uporabo v določenem časovnem obdobju) in podatke o zmogljivosti uporabiti za prepoznavanje ozkih grl v aplikaciji. Tu so števci uspešnosti še kako prav. Za pridobivanje teh podrobnosti lahko uporabite tudi WMI (Windows Management Instrumentation), Microsoftovo tehnologijo, ki temelji na COM, toda števci zmogljivosti vam omogočajo, da v realnem času dobite statistiko porabe virov v vašem sistemu med izvajanjem.

Snap-up Performance Monitor (orodje, ki je privzeto na voljo v operacijskem sistemu Windows) lahko uporabite za ogled podatkov o uspešnosti v realnem času. Če želite zagnati to orodje, kliknite meni Start in nato "Zaženi". Nato vnesite "perfmon" in pritisnite enter.

Števci uspešnosti po meri

Ustvarjanje števcev uspešnosti po meri je preprosto. Števce zmogljivosti lahko ustvarite s pomočjo raziskovalca strežnikov. Najprej bi morali ustvariti kategorijo števca uspešnosti in nato ustvariti enega ali več števcev kot del te kategorije.

Za programsko delo s števci uspešnosti lahko uporabite razred System.Diagnostics.PerformanceCounter. Ustvariti bi morali primer razreda PerformanceCounter in nato določiti potrebne vrednosti za vsako od teh lastnosti: CategoryName, CounterName, MachineName in ReadOnly.

Če želite ustvariti kategorijo števca uspešnosti po meri, morate uporabiti metodo Ustvari razred PerformanceCounterCategory. Kot primer lahko naslednji delček kode uporabite za ustvarjanje kategorije števca uspešnosti po meri.

PerformanceCounterCategory.Create ("CustomPerformanceCounterCategoryName", "CustomPerformanceCounterHelp", PerformanceCounterCategoryType.MultiInstance,

"CustomPerformanceCounterName", "CustomPerformanceCounterHelp");

Naslednji delček kode prikazuje, kako lahko prikažete vse razpoložljive kategorije števcev zmogljivosti.

statična praznina Main ()

    {

var performanceCounterCategories = PerformanceCounterCategory.GetCategories ();

foreach (PerformanceCounterCategory performanceCounterCategory v performanceCounterCa Categories)

        {

Console.WriteLine (performanceCounterCategory.CategoryName);

        }

Console.Read ();

    }

Naslednji delček kode prikazuje, kako lahko pridobite števce zmogljivosti, ki spadajo v kategorijo "Procesor".

var performanceCounterCategories = PerformanceCounterCategory.GetCategories ()

.FirstOrDefault (kategorija => kategorija.Ime kategorije == "Procesor");

var performanceCounters = performanceCounterCategories.GetCounters ("_ Skupaj");

Za branje števca uspešnosti, ki pripada določeni kategoriji, morate uporabiti razred PerformanceCounter. Upoštevajte, da je razred PerformanceCounter na voljo v imenskem prostoru System.Diagnostics. Tu je popoln seznam kod, ki prikazuje, kako lahko prikažete imena števcev zmogljivosti vseh števcev zmogljivosti, ki spadajo v kategorijo "Procesor".

statična praznina Main ()

    {

var performanceCounterCategories = PerformanceCounterCategory.GetCategories ()

.FirstOrDefault (kategorija => kategorija.Ime kategorije == "Procesor");

var performanceCounters = performanceCounterCategories.GetCounters ("_ Skupaj");

Console.WriteLine ("Prikaz števcev zmogljivosti za kategorijo procesorja: - \ n");

foreach (PerformanceCounter performanceCounter in performanceCounters)

        {

Console.WriteLine (performanceCounter.CounterName);

        }

Console.Read ();

    }

Ustvarite lahko tudi svoj števec uspešnosti po meri in vanj zapišete podatke. Če želite to narediti, uporabite prednosti razredov CounterCreationDataCollection in CounterCreationData.

String customCategory = "Kategorija števca uspešnosti po meri";

if (! PerformanceCounterCategory.Exists (customCategory))

{

CounterCreationDataCollection counterCreationDataCollection = novo CounterCreationDataCollection ();

counterCreationDataCollection.Add (novi CounterCreationData ("Števec 1", "Vzorec števca 1", PerformanceCounterType.ElapsedTime));

counterCreationDataCollection.Add (novi CounterCreationData ("Števec 2", "Vzorec števca 2", PerformanceCounterType.SampleCounter));

counterCreationDataCollection.Add (novi CounterCreationData ("Števec 3", "Vzorec števca 3", PerformanceCounterType.SampleCounter));

PerformanceCounterCategory.Create (customCategory, "To je samo primer", PerformanceCounterCategoryType.SingleInstance, counterCreationDataCollection);

}

Upoštevajte, da preverite, ali je preverjeno, ali števec uspešnosti po meri, ki ga želite ustvariti, že obstaja. Števec uspešnosti po meri se ustvari samo, če ne obstaja. Nato se ustvari primerek CounterCreaionDataCollection. Z uporabo razreda CounterCreationData se v zbirko dodajo novi števci. Ko so dodani potrebni števci, se za ustvarjanje kategorije uspešnosti po meri pokliče metoda Ustvari razred PerformanceCounterCategory.

Upoštevajte, da mora imeti vaša aplikacija potrebna dovoljenja za dostop do števcev zmogljivosti, ki jih potrebujete. Vedno priporočam zagon Visual Studio IDE v skrbniškem načinu. Števci uspešnosti zelo pomagajo pri analizi uspešnosti vaših aplikacij - podatke o zmogljivosti lahko analizirate v času, ko je vaša aplikacija v izvedbi.

$config[zx-auto] not found$config[zx-overlay] not found