C#: Leistungsdaten von Anwendungen mit Performance-Countern anzeigen

Am einfachsten lassen sich Performance-Counter mit Hilfe des PerfMon-Snap-ins für die Microsoft-Management-Konsole lesen. Um PerfMon (den Systemmonitor) zu öffnen und dort den anwenderspezifischen Counter zu hinterlegen, ist Folgendes zu tun:

  • Startmenü öffnen und auf „Ausführen“ klicken.
  • „perfmon“ eingeben und Eingabetaste drücken.
  • Das PerfMon-Fenster sollte sich jetzt öffnen. Mit großer Wahrscheinlichkeit sind bereits einige Standard-Counter hinterlegt.
  • Nach einem Rechtsklick auf dem Grafik-Feld „Leistungsindikatoren hinzufügen:“ auswählen.
  • Unter „Datenobjekt:“ SampleCategory auswählen.
  • Sicherstellen, dass unter „Leistungsindikatoren wählen:“ SampleCounter ausgewählt ist.
  • Auf „Hinzufügen“ klicken.
  • Auf „Schließen“ klicken.

Der Sample-Counter sollte nun auch in der Grafik erscheinen. Wenn aktuell keine Daten beim Counter ankommen, verläuft die Kurve flach. Doch das ändert sich, sobald Daten gesendet werden.

Etwas komplexer, aber dafür manchmal auch hilfreicher, ist das Auslesen des Counters über ein spezielles Programm. So ergibt sich die Möglichkeit, den Counter jederzeit abzurufen und die Daten zu Analysezwecken zu speichern.

Der Preis der Instantiierung

Aufgrund der Funktionsweise von Performance-Countern ist es gut möglich, dass sie mit einer großen Menge an Daten gefüllt werden. Denn vielleicht ist es jedes Mal, wenn ein neuer Datensatz in die Datenbank eingefügt wird, erforderlich, die Gesamtdatensatzmenge über einen Performance-Counter auszugeben. Doch die Performance-Counter-Objekte sollten nur einmal instantiiert werden – und nicht etwa jedes Mal, wenn die Objekte neue Daten erhalten. Das erklärt sich daher, dass das Instantiieren eines Performance-Counter-Objekts ein äußerst ressourcenintensiver Vorgang ist. Wird ein neues Performance-Counter-Objekt jedes Mal instantiiert, wenn neue Inhalte hinzukommen, könnte sich das negativ auf die Performance der Anwendung auswirken. Ein Beispiel dafür sind die beiden nachfolgenden Codeschnipsel.

Falsche Instantiierung:


Korrekte Instantiierung:


Zwar führen beide Schnipsel die gleiche Funktion aus. Doch mit dem zweiten Code geht es mehr als 5000-mal schneller als mit dem Code aus dem ersten Beispiel. Das liegt schlicht und ergreifend daran, dass der Code im Beispiel Nummer zwei das PerformanceCounter-Objekt einmal instantiiert, während es im ersten Beispiel bei jeder Wiederholung der Schleife instantiiert wird.

Themenseiten: .NET, Anwendungsentwicklung, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu C#: Leistungsdaten von Anwendungen mit Performance-Countern anzeigen

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *