Frage
Gibt es irgendwo in C # Timing-Operationen mit Sub-Millisekunden-Genauigkeit durchzuführen? Ich setze Timing Code in meiner Software und alles als 0ms zurückgegeben wird. Ich würde gerne wissen, ob es einen Weg gibt noch feinere Körnung zu bekommen.
Nachtrag: ist dies der richtige Code Sub-Millisekunden-Timing zu bekommen
?timeSpan.TotalMilliseconds / 10
Ich bin noch immer 0 als die verstrichene Zeit
Lösung
Sie können immer versuchen, oder Queryperformancecounter die Stoppuhr Klasse für einen verwalteten Ansatz
Andere Tipps
Verwenden System.Diagnostics.Stopwatch
Normalerweise messe ich diese Art von Szenarien, die durch die Operation mehrere Male wiederholt (so viele wie nötig, um die Millisekunden über ein paar Dutzend zu bekommen oder hundert.
Dann können Sie einstellen und leichter messen.
Sie könnten versuchen, Ihre Leistung in der Angelegenheit von Ticks statt Millisekunden gemessen wird. Es wird viel genauer in Bezug auf die Leistung sein.
aber ich stimme mit Sam und Tyraniden, Verwendung System.Diagnostics.Stopwatch.
ich etwas Neues gelernt. Diese Ticks sind in der Tat praktisch. Komplettes Beispiel:
Stopwatch stopwatch = Stopwatch.StartNew();
// Run code to get duration of
long durationInTicks = stopwatch.ElapsedTicks;
Console.WriteLine($"Duration: {(decimal)durationInTicks / TimeSpan.TicksPerMillisecond:f3}ms");
Sie können auch stopwatch.ElapsedTicks
innerhalb des Console.WriteLine
verwenden, aber ich weiß nicht, ob das irgendwelche Leistungsverzögerungen hat, deshalb habe ich es zuerst abrufen und in einer Variablen setzen.