Programovanie

Ako pracovať s počítadlami výkonu v C #

Windows sleduje procesy a služby, ktoré sú spustené vo vašom systéme, sledovaním vlákien, ktoré sa práve vykonávajú, pamäte CLR atď. Často by ste potrebovali merať výkonnosť počítačových systémov alebo aplikácií na nich spustených podľa na metriky, ako napríklad spotreba zdrojov v systéme, služby bežiace v systéme alebo výkon zariadení pripojených k systému.

Počítadlá výkonu (funkcia poskytovaná predvolene) nám umožňujú zaznamenávať, publikovať a analyzovať údaje o výkone súvisiace s jednou alebo viacerými aplikáciami alebo službami bežiacimi v systéme alebo v systéme ako celku.

Pri vytváraní aplikácií možno budete musieť monitorovať ich výkon (spotreba zdrojov alebo využitie v určitom časovom období) a údaje o výkone použiť na identifikáciu úzkych miest v aplikácii. Tu vám prídu vhod počítadlá výkonu. Na získanie týchto detailov môžete tiež použiť WMI (Windows Management Instrumentation), technológiu spoločnosti Microsoft založenú na COM, ale počítadlá výkonu vám poskytujú spôsob, ako získať štatistiku spotreby zdrojov v reálnom čase za behu systému.

Na zobrazenie údajov o výkone v reálnom čase možno použiť modul Sledovanie výkonu (nástroj, ktorý je štandardne poskytovaný v operačnom systéme Windows). Tento nástroj spustíte kliknutím na ponuku Štart a kliknutím na príkaz „Spustiť“. Ďalej zadajte „perfmon“ a stlačte kláves Enter.

Vlastné počítadlá výkonu

Vytváranie vlastných počítadiel výkonu je jednoduché. Počítadlá výkonu môžete vytvoriť pomocou programu Server Explorer. Najprv by ste mali vytvoriť kategóriu počítadla výkonu a potom vytvoriť jeden alebo viac počítadiel ako súčasť tejto kategórie.

Ak chcete programovo pracovať s počítadlami výkonu, môžete použiť triedu System.Diagnostics.PerformanceCounter. Budete musieť vytvoriť inštanciu triedy PerformanceCounter a potom určiť potrebné hodnoty pre každú z týchto vlastností: CategoryName, CounterName, MachineName a ReadOnly.

Ak chcete vytvoriť vlastnú kategóriu počítadla výkonu, budete musieť využiť metódu Create triedy PerformanceCounterCategory. Nasledujúci útržok kódu je možné použiť napríklad na vytvorenie vlastnej kategórie počítadla výkonu.

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

"CustomPerformanceCounterName", "CustomPerformanceCounterHelp");

Nasledujúci úryvok kódu ukazuje, ako môžete zobraziť všetky dostupné kategórie počítadla výkonu.

static void Main ()

    {

var performanceCounterCategories = PerformanceCounterCategory.GetCategories ();

foreach (PerformanceCounterCategory performanceCounterCategory v performanceCounterCategories)

        {

Console.WriteLine (performanceCounterCategory.CategoryName);

        }

Console.Read ();

    }

Nasledujúci úryvok kódu ilustruje, ako môžete načítať počítadlá výkonu, ktoré patria do kategórie „Procesor“.

var performanceCounterCategories = PerformanceCounterCategory.GetCategories ()

.FirstOrDefault (category => category.CategoryName == "procesor");

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

Na čítanie počítadla výkonu patriaceho do konkrétnej kategórie musíte použiť triedu PerformanceCounter. Upozorňujeme, že trieda PerformanceCounter je k dispozícii v priestore názvov System.Diagnostics. Tu je kompletný zoznam kódov, ktorý ukazuje, ako môžete zobraziť názvy počítadiel výkonu všetkých počítadiel výkonu, ktoré patria do kategórie „Procesor“.

static void Main ()

    {

var performanceCounterCategories = PerformanceCounterCategory.GetCategories ()

.FirstOrDefault (category => category.CategoryName == "procesor");

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

Console.WriteLine ("Zobrazenie počítadiel výkonu pre kategóriu procesorov: - \ n");

foreach (PerformanceCounter performanceCounter in performanceCounters)

        {

Console.WriteLine (performanceCounter.CounterName);

        }

Console.Read ();

    }

Môžete tiež vytvoriť vlastné počítadlo výkonu a zapisovať do nich údaje. Ak to chcete urobiť, mali by ste využiť výhody tried CounterCreationDataCollection a CounterCreationData.

String customCategory = "Kategória vlastného počítadla výkonu";

if (! PerformanceCounterCategory.Exists (customCategory))

{

CounterCreationDataCollection counterCreationDataCollection = nový CounterCreationDataCollection ();

counterCreationDataCollection.Add (new CounterCreationData ("Counter 1", "Sample Counter 1", PerformanceCounterType.ElapsedTime));

counterCreationDataCollection.Add (new CounterCreationData ("Counter 2", "Sample Counter 2", PerformanceCounterType.SampleCounter));

counterCreationDataCollection.Add (new CounterCreationData ("Counter 3", "Sample Counter 3", PerformanceCounterType.SampleCounter));

PerformanceCounterCategory.Create (customCategory, „This is just an example“, PerformanceCounterCategoryType.SingleInstance, counterCreationDataCollection);

}

Upozorňujeme, že ak sa vykonáva overenie, či už existuje vlastné počítadlo výkonu, ktoré sa má vytvoriť, skontroluje sa. Vlastné počítadlo výkonu sa vytvorí, iba ak neexistuje. Ďalej sa vytvorí inštancia CounterCreaionDataCollection. Pomocou triedy CounterCreationData sa do kolekcie pridávajú nové počítadlá. Po pridaní potrebných počítadiel sa vyvolá metóda Create triedy PerformanceCounterCategory na vytvorenie vlastnej kategórie výkonu.

Upozorňujeme, že vaša aplikácia by mala mať potrebné povolenia na prístup k potrebným čítačom výkonu. Vždy by som odporúčal spustiť Visual Studio IDE v režime administrátora. Počítadlá výkonu veľmi pomáhajú analyzovať výkon vašich aplikácií - údaje o výkone môžete analyzovať v čase, keď je vaša aplikácia v prevádzke.

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