Exakte Zeitmessung für Leistungstests in C#

Muhammad Zeeshan 12 Oktober 2023
  1. Übersicht Stoppuhr
  2. Implementierung von Stopwatch zur exakten Zeitmessung für Leistungstests in C#
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:

  1. .Abgelaufen
  2. .ElapsedMillisekunden
  3. .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 Objekt Stopwatch mit dem Namen s.
    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
Muhammad Zeeshan avatar Muhammad Zeeshan avatar

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