![](/img/trans.png)
[英]How can I measure the approximation of the time spent in a process context switch?
[英]How can i measure time of some part of code considering sleep time?
我尝试这样:
Stopwatch timer = new Stopwatch();
timer.Start();
for (i = 0; i < 100; i++) {
//do here some stuff
Thread.Sleep(500);
}
timer.Stop();
TimeSpan ts = timer.Elapsed;
Console.WriteLine(ts.Milliseconds);
它显示了49毫秒,但实际上是在2分钟内完成的。 这是具有教育意义的象牙,我必须考虑睡眠时间。 我怎样才能做到这一点?
在减去经过的秒,分钟,小时等之后, Timespan.Milliseconds
属性返回Timespan.Milliseconds
的毫秒部分。您可能需要TimeSpan.TotalMilliseconds
。
有关说明,请参见此帖子: C#时间跨度vs TotalMilliseconds
我认为这是一个单位问题,请尝试直接从秒表获取ms,这对我有用:
Stopwatch timer = new Stopwatch();
timer.Start();
for (int i = 0; i < 20; i++)
{
//do here some stuff
Thread.Sleep(500);
}
timer.Stop();
long ms = timer.ElapsedMilliseconds;
Console.WriteLine(ms);
Console.ReadLine();
秒表的使用将不准确,如果您想精确地测量某些代码的执行情况,则必须使用操作系统内置的性能计数器。 检查this
出来。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.