Προγραμματισμός

Πώς να εργαστείτε με μετρητές επιδόσεων στο C #

Τα Windows παρακολουθούν τις διαδικασίες και τις υπηρεσίες που εκτελούνται στο σύστημά σας παρακολουθώντας τα νήματα που εκτελούνται αυτήν τη στιγμή, τη μνήμη CLR κ.λπ. Συχνά θα πρέπει να μετράτε την απόδοση των συστημάτων υπολογιστών ή των εφαρμογών που εκτελούνται σε αυτά ανάλογα σε μετρήσεις όπως για την κατανάλωση πόρων στο σύστημα, υπηρεσίες που εκτελούνται στο σύστημα ή την απόδοση των συσκευών που είναι συνδεδεμένες στο σύστημα.

Οι μετρητές επιδόσεων (μια δυνατότητα που παρέχεται από προεπιλογή) μας επιτρέπουν να καταγράφουμε, να δημοσιεύουμε και να αναλύουμε τα δεδομένα απόδοσης που σχετίζονται με μία ή περισσότερες εφαρμογές ή υπηρεσίες που εκτελούνται στο σύστημα ή στο σύνολό του.

Κατά τη δημιουργία εφαρμογών, ίσως χρειαστεί συχνά να παρακολουθείτε την απόδοσή της (κατανάλωση πόρων ή χρήση για μια χρονική περίοδο) και να χρησιμοποιήσετε τα δεδομένα απόδοσης για τον προσδιορισμό των σημείων συμφόρησης στην εφαρμογή. Εδώ είναι όπου οι μετρητές επιδόσεων είναι βολικοί. Μπορείτε επίσης να χρησιμοποιήσετε το WMI (Windows Management Instrumentation), μια τεχνολογία Microsoft που βασίζεται σε COM, για να ανακτήσετε αυτές τις λεπτομέρειες, αλλά οι μετρητές επιδόσεων σάς παρέχουν έναν τρόπο να λάβετε στατιστικά στοιχεία σε πραγματικό χρόνο για την κατανάλωση πόρων στο σύστημά σας κατά το χρόνο εκτέλεσης.

Το συμπληρωματικό πρόγραμμα παρακολούθησης επιδόσεων (ένα εργαλείο που παρέχεται από προεπιλογή στο λειτουργικό σύστημα Windows) μπορεί να χρησιμοποιηθεί για την προβολή δεδομένων απόδοσης σε πραγματικό χρόνο. Για να ξεκινήσετε αυτό το εργαλείο, κάντε κλικ στο μενού Έναρξη και κάντε κλικ στο "Εκτέλεση". Στη συνέχεια, πληκτρολογήστε "perfmon" και πατήστε enter.

Μετρητές προσαρμοσμένης απόδοσης

Η δημιουργία προσαρμοσμένων μετρητών απόδοσης είναι απλή. Μπορείτε να δημιουργήσετε μετρητές επιδόσεων χρησιμοποιώντας τον Εξερεύνηση διακομιστή. Θα πρέπει πρώτα να δημιουργήσετε την κατηγορία μετρητή απόδοσης και, στη συνέχεια, να δημιουργήσετε έναν ή περισσότερους μετρητές ως μέρος αυτής της κατηγορίας.

Για να εργαστείτε με μετρητές επιδόσεων μέσω προγραμματισμού, μπορείτε να χρησιμοποιήσετε την κλάση System.Diagnostics.PerformanceCounter. Θα χρειαστεί να δημιουργήσετε μια παρουσία της κλάσης PerformanceCounter και, στη συνέχεια, να καθορίσετε τις απαραίτητες τιμές για καθεμία από αυτές τις ιδιότητες: CategoryName, CounterName, MachineName και ReadOnly.

Για να δημιουργήσετε μια προσαρμοσμένη κατηγορία μετρητή απόδοσης θα πρέπει να αξιοποιήσετε τη μέθοδο Δημιουργία της κλάσης PerformanceCounterCategory. Για παράδειγμα, το ακόλουθο απόσπασμα κώδικα μπορεί να χρησιμοποιηθεί για τη δημιουργία μιας κατηγορίας μετρητή προσαρμοσμένης απόδοσης.

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

"CustomPerformanceCounterName", "CustomPerformanceCounterHelp");

Το παρακάτω απόσπασμα κώδικα δείχνει πώς μπορείτε να εμφανίσετε όλες τις διαθέσιμες κατηγορίες μετρητών απόδοσης.

στατικό κενό Κεντρικό ()

    {

var performanceCounterCategories = PerformanceCounterCategory.GetCategories ();

foreach (PerformanceCounterCategory performanceCounterCategory in performanceCounterCategories)

        {

Console.WriteLine (performanceCounterCategory.CategoryName);

        }

Κονσόλα. Διαβάστε ();

    }

Το παρακάτω απόσπασμα κώδικα δείχνει πώς μπορείτε να ανακτήσετε μετρητές απόδοσης που ανήκουν στην κατηγορία "Επεξεργαστής".

var performanceCounterCategories = PerformanceCounterCategory.GetCategories ()

.FirstOrDefault (category => category.CategoryName == "Επεξεργαστής");

var performanceCounters = performanceCounterCategories.GetCounters ("_ Σύνολο");

Πρέπει να χρησιμοποιήσετε την κλάση PerformanceCounter για να διαβάσετε έναν μετρητή απόδοσης που ανήκει σε μια συγκεκριμένη κατηγορία. Σημειώστε ότι η κλάση PerformanceCounter είναι διαθέσιμη στο χώρο ονομάτων System.Diagnostics. Ακολουθεί η πλήρης λίστα κωδικών που δείχνει πώς μπορείτε να εμφανίσετε τα ονόματα μετρητών απόδοσης όλων των μετρητών επιδόσεων που ανήκουν στην κατηγορία "Επεξεργαστής".

στατικό κενό Κεντρικό ()

    {

var performanceCounterCategories = PerformanceCounterCategory.GetCategories ()

.FirstOrDefault (category => category.CategoryName == "Επεξεργαστής");

var performanceCounters = performanceCounterCategories.GetCounters ("_ Σύνολο");

Console.WriteLine ("Εμφάνιση μετρητών επιδόσεων για την κατηγορία επεξεργαστή: - \ n");

foreach (PerformanceCounter PerformanceCounter in performanceCounters)

        {

Console.WriteLine (performanceCounter.CounterName);

        }

Κονσόλα. Διαβάστε ();

    }

Μπορείτε επίσης να δημιουργήσετε τον προσαρμοσμένο μετρητή απόδοσης και να γράψετε δεδομένα σε αυτά. Για να το κάνετε αυτό, θα πρέπει να επωφεληθείτε από τις τάξεις CounterCreationDataCollection και CounterCreationData.

String customCategory = "Κατηγορία μετρητή προσαρμοσμένης απόδοσης";

εάν (! PerformanceCounterCategory.Exists (customCategory))

{

CounterCreationDataCollection counterCreationDataCollection = νέο CounterCreationDataCollection ();

counterCreationDataCollection.Add (νέο CounterCreationData ("Counter 1", "Sample Counter 1", PerformanceCounterType.ElapsedTime));

counterCreationDataCollection.Add (νέο CounterCreationData ("Counter 2", "Sample Counter 2", PerformanceCounterType.SampleCounter));

counterCreationDataCollection.Add (νέο CounterCreationData ("Counter 3", "Sample Counter 3", PerformanceCounterType.SampleCounter));

PerformanceCounterCategory.Create (customCategory, "Αυτό είναι απλώς ένα παράδειγμα", PerformanceCounterCategoryType.SingleInstance, counterCreationDataCollection);

}

Λάβετε υπόψη ότι υπάρχει έλεγχος εάν γίνει επιβεβαίωση εάν υπάρχει ήδη ο προσαρμοσμένος μετρητής απόδοσης που θα δημιουργηθεί. Ο προσαρμοσμένος μετρητής απόδοσης δημιουργείται μόνο εάν δεν υπάρχει. Στη συνέχεια, δημιουργείται μια παρουσία του CounterCreaionDataCollection. Χρησιμοποιώντας την κλάση CounterCreationData, προστίθενται νέοι μετρητές στη συλλογή. Μόλις προστεθούν οι απαραίτητοι μετρητές, καλείται η μέθοδος Δημιουργία της κλάσης PerformanceCounterCategory για τη δημιουργία της προσαρμοσμένης κατηγορίας απόδοσης

Λάβετε υπόψη ότι η εφαρμογή σας θα πρέπει να διαθέτει τα απαραίτητα δικαιώματα για πρόσβαση στους μετρητές επιδόσεων που χρειάζεστε. Θα συνιστούσα πάντα την εκκίνηση του Visual Studio IDE στη λειτουργία διαχειριστή. Οι μετρητές απόδοσης βοηθούν πολύ στην ανάλυση της απόδοσης των εφαρμογών σας - μπορείτε να αναλύσετε τα δεδομένα απόδοσης τη στιγμή που η εφαρμογή σας βρίσκεται σε εκτέλεση.

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