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.

Page: 1 2 3

ZDNet.de Redaktion

Recent Posts

Apple schließt Zero-Day-Lücken in iOS, iPadOS und macOS

Zwei von Google-Mitarbeitern entdeckte Schwachstellen werden bereits aktiv gegen Mac-Systeme mit Intel-Prozessoren eingesetzt. Sie erlauben…

2 Tagen ago

Gefährliche Anzeigen für Passwortmanager Bitwarden verbreiten Malware

Die Hintermänner haben es unter anderem auf Daten von Facebook-Geschäftskonten abgesehen. Opfer werden über angebliche…

3 Tagen ago

Public Cloud: Gartner erwartet 2025 weltweite Ausgaben von 723 Milliarden Dollar

Bis 2027 werden 90 Prozent der Unternehmen eine Hybrid-Cloud-Strategie umsetzen.

3 Tagen ago

iPhone 15 ist bestverkauftes Smartphone im dritten Quartal

Apple belegt in der Statistik von Counterpoint die ersten drei Plätze. Samsungs Galaxy S24 schafft…

3 Tagen ago

So günstig & effizient war Content Produktion noch nie: Neues Content System erobert deutschen Markt

Kontinuierliche Content Produktion und Markenaufbau sind essentieller Pfeiler von langfristigen Unternehmenserfolg. Das ist mittlerweile auch…

3 Tagen ago

Lenovo übertrifft die Erwartungen und hebt Prognose an

KI-Funktionen beschleunigen die Erholung des PC-Markts. Der Nettogewinn legt um 44 Prozent zu, der Umsatz…

4 Tagen ago