Was ist der beste Weg, die Ausführungszeit einer Funktion zu messen? [Duplikat]
-
22-08-2019 - |
Frage
Diese Frage bereits eine Antwort hier:
Natürlich kann ich tun und DateTime.Now.After
-. DateTime.Now.Before
aber es muss etwas anspruchsvollere sein
Irgendwelche Tipps geschätzt.
Lösung
System.Environment.TickCount und die System.Diagnostics.Stopwatch Klasse zwei sind, die funktionieren auch für feinere Auflösung und einfache Nutzung.
Siehe auch:
Andere Tipps
Ich würde auf jeden Fall empfehlen einen Blick auf System.Diagnostics.Stopwatch
haben
Und wenn ich für mehr über Stoppuhr umsah fand ich diese Seite;
Hüten Sie sich vor der Stoppuhr
Es gibt eine andere Möglichkeit erwähnt
Process.TotalProcessorTime
Verwenden Sie einen Profiler
Ihr Ansatz funktioniert trotzdem, aber wenn man für anspruchsvollere Ansätze suchen. Ich würde vorschlagen, einen C # Profiler verwenden.
Die Vorteile, die sie haben, ist:
- Sie können sogar eine Statement-Ebene erhalten Auflösung
- Keine in der Code-Basis erforderlichen Änderungen
- Instrumentions haben in der Regel sehr wenig Aufwand kann daher sehr genaue Ergebnisse erzielt werden.
Es gibt viele verfügbar Open-Source- auch.
Tickcount ist gut, aber ich schlage vor, es 100 oder 1000 mal ausgeführt wird, und ein Mittelwert berechnet. Nicht nur macht es messbar -. Bei wirklich schnell / kurzen Funktionen, sondern hilft durch den Overhead mit einigen Einmaleffekten verursacht Umgang