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

HostPress für Agenturen und E-Commerce-Betreiber

Höchste Performance-Standards für Webseiten und ein persönlicher, kundenorientierter Premium Support.

5 Tagen ago

V-NAND: Samsung steigert Bit-Dichte um 50 Prozent

Die neue V-NAND-Generation bietet die derzeit höchste verfügbare Bit-Dichte. Samsung steigert auch die Geschwindigkeit und…

5 Tagen ago

Bericht: Google entwickelt App-Quarantäne für Android

Die Sicherheitsfunktion taucht in einer Beta eines kommenden Android-Updates auf. Die Quarantäne beendet unter anderem…

6 Tagen ago

Kostenloser Kurs zum Ausbau von Low-Code-Programmierung

Die OutSystems Developer School hilft Entwicklern, in 2 Wochen komplexe reaktive Anwendungen mit der Low-Code-Plattform…

6 Tagen ago

Cloudflare: DNS-basierte DDoS-Angriffe steigen im ersten Quartal um 80 Prozent

Das Jahr 2024 beginnt laut Cloudflare mit einem Paukenschlag. Die automatischen Systeme des Unternehmens wehren…

6 Tagen ago

Roblox: 34 Millionen Zugangsdaten im Darknet

Laut Kaspersky nehmen Infostealer gerade auch Spieleplattformen ins Visier. Neue Studie untersucht Angriffe zwischen 2021…

6 Tagen ago