c# – 如果有的话,使用System.Diagnostics.Stopwatch的资源是多少?

前端之家收集整理的这篇文章主要介绍了c# – 如果有的话,使用System.Diagnostics.Stopwatch的资源是多少?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
例如
foo() //Some operation bound by an external resource. db,I/O,whatever.

var watch = new Stopwatch();
watch.Start();
foo()
var time = watch.ElapsedMilliseconds
watch.Stop();

解决方法

我相信Stopwatch是建立在QueryPerformanceCounter之上的,所以每个调用都会导致内核转换.如果foo()非常简短,那么QPC的开销就会很小.

如果您使用秒表来测量简短任务,则应运行多次(如数千)foo(),并在整个批次周围使用秒表.将总时间除以运行次数获取任务的平均时间.

猜你在找的C#相关文章