Programmēšana

Kā strādāt ar veiktspējas skaitītājiem C #

Windows seko procesiem un pakalpojumiem, kas darbojas jūsu sistēmā, izsekojot pašlaik izpildāmos pavedienus, CLR atmiņu utt. Jums bieži būs jāmēra datorsistēmu vai tajās darbojošos lietojumprogrammu veiktspēja atbilstoši uz metriku, piemēram, par resursu patēriņu sistēmā, pakalpojumiem, kas darbojas sistēmā, vai sistēmai pievienoto ierīču veiktspēju.

Veiktspējas skaitītāji (pēc noklusējuma nodrošināta funkcija) ļauj mums iegūt, publicēt un analizēt veiktspējas datus, kas saistīti ar vienu vai vairākām lietojumprogrammām vai pakalpojumiem, kas darbojas sistēmā vai sistēmā kopumā.

Veidojot lietojumprogrammas, jums, iespējams, būs jāuzrauga tā veiktspēja (resursu patēriņš vai izmantošana noteiktā laika periodā) un jāizmanto veiktspējas dati, lai identificētu vājās vietas lietojumprogrammā. Šeit noderēs veiktspējas skaitītāji. Lai iegūtu šo informāciju, varat izmantot arī WMI (Windows Management Instrumentation), COM balstītu Microsoft tehnoloģiju, taču veiktspējas skaitītāji nodrošina veidu, kā izpildes laikā iegūt reāllaika statistiku par resursu patēriņu jūsu sistēmā.

Veiktspējas monitora (rīku, kuru pēc noklusējuma nodrošina Windows OS) pievienojumprogrammu var izmantot, lai reāllaikā skatītu veiktspējas datus. Lai palaistu šo rīku, noklikšķiniet uz izvēlnes Sākt un noklikšķiniet uz "Izpildīt". Pēc tam ierakstiet "perfmon" un nospiediet enter.

Pielāgoti veiktspējas skaitītāji

Pielāgotu veiktspējas skaitītāju izveidošana ir vienkārša. Izmantojot Server Explorer, varat izveidot veiktspējas skaitītājus. Vispirms jums ir jāizveido veiktspējas skaitītāja kategorija un pēc tam jāizveido viens vai vairāki skaitītāji kā daļa no šīs kategorijas.

Lai programmatiski darbotos ar veiktspējas skaitītājiem, varat izmantot klasi System.Diagnostics.PerformanceCounter. Jums vajadzētu izveidot klases PerformanceCounter gadījumu un pēc tam norādīt katrai no šīm īpašībām nepieciešamās vērtības: CategoryName, CounterName, MachineName un ReadOnly.

Lai izveidotu pielāgotu veiktspējas skaitītāja kategoriju, jums būs jāizmanto klases PerformanceCounterCategory izveides metode. Piemēram, lai izveidotu pielāgotu veiktspējas skaitītāja kategoriju, var izmantot šo koda fragmentu.

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

"CustomPerformanceCounterName", "CustomPerformanceCounterHelp");

Šis koda fragments parāda, kā varat parādīt visas pieejamās veiktspējas skaitītāja kategorijas.

static void Main ()

    {

var performanceCounterCategories = PerformanceCounterCategory.GetCategories ();

foreach (PerformanceCounterCategory performanceCounterCategory performanceCounterCategories)

        {

Console.WriteLine (performanceCounterCategory.CategoryName);

        }

Konsole. Lasīt ();

    }

Šis koda fragments parāda, kā jūs varat izgūt veiktspējas skaitītājus, kas pieder kategorijai "Procesors".

var performanceCounterCategories = PerformanceCounterCategory.GetCategories ()

.FirstOrDefault (kategorija => kategorija.KategorijasNosaukums == "Procesors");

var performanceCounters = performanceCounterCategories.GetCounters ("_ Kopā");

Jums ir jāizmanto PerformanceCounter klase, lai lasītu veiktspējas skaitītāju, kas pieder konkrētai kategorijai. Ņemiet vērā, ka PerformanceCounter klase ir pieejama System.Diagnostics nosaukumvietā. Šeit ir pilns kodu saraksts, kas parāda, kā jūs varat parādīt visu veiktspējas skaitītāju veiktspējas skaitītāju nosaukumus, kas pieder kategorijai "Procesors".

static void Main ()

    {

var performanceCounterCategories = PerformanceCounterCategory.GetCategories ()

.FirstOrDefault (kategorija => kategorija.KategorijasNosaukums == "Procesors");

var performanceCounters = performanceCounterCategories.GetCounters ("_ Kopā");

Console.WriteLine ("Procesora kategorijas veiktspējas skaitītāju parādīšana: - \ n");

foreach (PerformanceCounter performanceCounter performanceCounters)

        {

Console.WriteLine (performanceCounter.CounterName);

        }

Konsole. Lasīt ();

    }

Varat arī izveidot savu pielāgoto veiktspējas skaitītāju un ierakstīt tajos datus. Lai to izdarītu, jums vajadzētu izmantot CounterCreationDataCollection un CounterCreationData klases priekšrocības.

String customCategory = "Pielāgotas veiktspējas skaitītāja kategorija";

if (! PerformanceCounterCategory.Exists (customCategory))

{

CounterCreationDataCollection counterCreationDataCollection = new CounterCreationDataCollection ();

counterCreationDataCollection.Add (new CounterCreationData ("1. skaitītājs", "1. skaitītāja paraugs", 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, "Šis ir tikai piemērs", PerformanceCounterCategoryType.SingleInstance, counterCreationDataCollection);

}

Ņemiet vērā, ka pārbaude ir jāveic, lai pārbaudītu, vai izveidojamais pielāgotās veiktspējas skaitītājs jau pastāv. Pielāgots veiktspējas skaitītājs tiek izveidots tikai tad, ja tā nav. Pēc tam tiek izveidota CounterCreaionDataCollection instance. Izmantojot CounterCreationData klasi, kolekcijai tiek pievienoti jauni skaitītāji. Kad nepieciešamie skaitītāji ir pievienoti, tiek izsaukta klases PerformanceCounterCategory metode Izveidot, lai izveidotu pielāgotu veiktspējas kategoriju.

Ņemiet vērā, ka jūsu lietojumprogrammai jābūt nepieciešamajām atļaujām, lai piekļūtu jums nepieciešamajiem veiktspējas skaitītājiem. Es vienmēr iesaku Visual Studio IDE sākt administratora režīmā. Veiktspējas skaitītāji daudz palīdz analizēt jūsu lietojumprogrammu veiktspēju - jūs varat analizēt veiktspējas datus laikā, kad jūsu lietojumprogramma tiek izpildīta.

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