使用C#(.Net Core)测量时间

Tut*_*tch 5 c# .net-core

我知道这个问题已经被问了不止一次,但是我不确定结果是否正确。该操作似乎太快了,所以我想仔细检查一下是否确实如此。

我有一个例程将一个字符串拆分为一个List<byte[]>。我想检查该操作所花费的时间,因此我将代码修改为如下所示:

// Deserializes base64 received from POST service
var str = JsonConvert.DeserializeObject<JsonText>(body).text;

Stopwatch stopWatch = Stopwatch.StartNew();

// parseText is a routine that splits str into
// byte[] of maximum size 100 and puts them into
// a List<byte[]> that is then returned 
commands = DummyClass.parseText(str);

stopWatch.Stop();
TimeSpan timespan = stopWatch.Elapsed;

Console.WriteLine(timespan.TotalMilliseconds.ToString("0.0###"));

...
Run Code Online (Sandbox Code Playgroud)

我使用8000个字符串运行了例程,预计运行时间为几毫秒,但令人惊讶的是,整个操作的运行时间最多为0.8ms,这预计会慢很多。

我读取的测量值有误吗?0.8表示8ms吗?在测量时间时我做错什么了吗?

非常感谢你!

Sli*_*umi 5

代替

TimeSpan timespan = stopWatch.Elapsed;
Console.WriteLine(timespan.TotalMilliseconds.ToString("0.0###"));
Run Code Online (Sandbox Code Playgroud)

为什么不试试

Console.WriteLine("Elapsed time {0} ms",stopWatch.ElapsedMilliseconds);
Run Code Online (Sandbox Code Playgroud)

你想要毫秒,你可以直接在秒表类中使用它们 - 无需访问 string.format 和 timespan 库。

  • 不,同样的事情。实际上它显示 0 因为四舍五入。 (2认同)