Exakte Zeitmessung für Leistungstests in C#
In diesem Artikel erfahren Sie, wie Sie die genaue Zeit für Leistungstests mit C# messen. Der Namensraum System.Diagnostics
hat eine ausgezeichnete Klasse namens Stopwatch
, die eine unkomplizierte Methode zum Messen der Dauer einer Ausführung bietet.
Verschaffen wir uns einen Überblick über Stopwatch
.
Übersicht Stoppuhr
Die eingebaute Klasse Stopwatch
wurde im .Net
-Framework zur Verfügung gestellt und kann in verschiedenen Situationen verwendet werden. Es unterstützt Sie bei der Optimierung Ihres Codes, der Auswahl der besten Option aus mehreren möglichen Lösungen oder der Lokalisierung von Leistungsspitzen.
Mit anderen Worten, eine Stoppuhr
ist ein einfaches Gerät, das bestimmen kann, wie lange ein bestimmter Vorgang oder eine bestimmte Aktivität dauert, bis sie abgeschlossen ist. In Situationen, in denen der Zeitaufwand eine entscheidende Rolle spielt, ist es hilfreich, den Code zu optimieren.
Es hat eine hohe Genauigkeit und ist praktisch, wenn andere Überwachungstools mit einem höheren Grad an Komplexität entweder nicht verfügbar sind oder der Einfachheit halber nicht benötigt werden.
Implementierung von Stopwatch
zur exakten Zeitmessung für Leistungstests in C#
Werfen wir einen Blick auf die grundlegende Implementierung von Stopwatch
. Anhand der folgenden Merkmale kann die vergangene Zeit ermittelt werden:
.Abgelaufen
.ElapsedMillisekunden
.ElapsedTicks
In der folgenden Demonstration haben wir die Funktion .Elapsed
implementiert, die die verstrichene Prozesszeit ausgibt.
Beispiel
-
Um das Dienstprogramm
Stoppuhr
zu verwenden, importieren Sie die folgenden Bibliotheken:using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Diagnostics;
-
Erstellen Sie in der Methode
Main()
das ObjektStopwatch
mit dem Namens
.Stopwatch s = new Stopwatch();
-
Starten Sie die Messung des Prozesses:
s.Start();
-
Schreiben Sie jetzt Ihren Vorgangscode. Zum Beispiel haben wir eine einfache
for()
-Schleife zum Drucken eines String-Werts verwendet.for (int i = 0; i < 5; i++) { Console.WriteLine("Myself M.Zeeshan, Let's Code!"); }
-
Stoppen Sie nach dem Schreiben Ihres Codes die Messung des Prozesses.
s.Stop();
-
Zuletzt verwenden wir die Funktion
.Elapsed
, um die Prozesszeit zu überprüfen.Console.WriteLine("Time elapsed: {0}", s.Elapsed);
Vollständiger Quellcode:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;
namespace StopwatchbyZeeshan {
class Program {
static void Main(string[] args) {
Stopwatch s = new Stopwatch();
s.Start();
for (int i = 0; i < 5; i++) {
Console.WriteLine("Myself M.Zeeshan, Let's Code!");
}
s.Stop();
Console.WriteLine("Total Time elapsed: {0}", s.Elapsed);
}
}
}
Ausgang:
Myself M.Zeeshan, Let's Code!
Myself M.Zeeshan, Let's Code!
Myself M.Zeeshan, Let's Code!
Myself M.Zeeshan, Let's Code!
Myself M.Zeeshan, Let's Code!
Total Time elapsed: 00:00:00.0144367
I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.
LinkedIn