Avatar ·

Wie misst man die Ausführungszeit einer Methode in C#? Stopwatch und andere Methoden

Hallo zusammen! Ich bin ein C#-Anfänger und stehe vor folgender Aufgabe: Ich muss genau messen, wie lange eine bestimmte Methode in meiner Anwendung läuft. Zum Beispiel schreibe ich einen Parser für eine große Datei oder führe komplexe mathematische Berechnungen durch und möchte verstehen, welcher Teil des Codes langsam ist. Derzeit mache ich es so: ```csharp DateTime start = DateTime.Now; // meine Methode Thread.Sleep(1000); // Simulation der Arbeit DateTime end = DateTime.Now; TimeSpan duration = end - start; Console.WriteLine($"Zeit: {duration.TotalMilliseconds} ms"); ``` Aber ich habe bemerkt, dass die Ergebnisse manchmal schwanken: mal 1000 ms, mal 1002 ms, mal 998 ms. Außerdem habe ich gehört, dass DateTime.Now für solche Messungen nicht sehr genau ist. Könnt ihr mir sagen, wie man die Ausführungszeit einer Methode richtig misst? Muss man bestimmte Besonderheiten beachten, zum Beispiel wenn die Methode sehr schnell läuft (weniger als eine Millisekunde) oder im Gegenteil lange dauert (Minuten)? Gibt es integrierte Werkzeuge in .NET dafür? Und wie vermeidet man generell den Einfluss der Messung selbst auf das Ergebnis?