it-swarm.com.de

Wie kann die Ausführungszeit einer Funktion am besten gemessen werden?

Offensichtlich kann ich tun und DateTime.Now.After - DateTime.Now.Before aber es muss etwas raffinierter sein.

Alle Tipps geschätzt.

84
inspite
96
ctacke

Ich würde dir auf jeden Fall raten, dir System.Diagnostics.Stopwatch

Und als ich mich nach Stoppuhr umsah, fand ich diese Seite;

Vorsicht vor der Stoppuhr

Es wurde eine andere Möglichkeit erwähnt

Process.TotalProcessorTime

45
tafa

Verwenden Sie einen Profiler

Ihr Ansatz wird trotzdem funktionieren, aber wenn Sie nach ausgefeilteren Ansätzen suchen. Ich würde vorschlagen, einen C # -Profiler zu verwenden.

Ihre Vorteile sind:

  • Sie können sogar eine Aufteilung auf Anweisungsebene erhalten
  • Keine Änderungen in Ihrer Codebasis erforderlich
  • Instrumente haben im Allgemeinen einen sehr geringen Overhead, sodass sehr genaue Ergebnisse erzielt werden können.

Es gibt auch viele verfügbare Open-Source .

11
M.N

Tickcount ist gut, aber ich schlage vor, es 100 oder 1000 Mal auszuführen und einen Durchschnitt zu berechnen. Macht es nicht nur messbarer - bei wirklich schnellen/kurzen Funktionen, sondern hilft auch bei der Bewältigung einiger durch den Overhead verursachter Einmaleffekte.

4
FooLman