C#秒表计时异步/等待方法不准确

前端之家收集整理的这篇文章主要介绍了C#秒表计时异步/等待方法不准确前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在写一些性能测试,并希望能够为异步的方法计时.代码如下所示,其中action是Func< Task< HttpResponseMessage>>:

var sw = new Stopwatch();
HttpResponseMessage response = null;

sw.Start();
response = await action().ConfigureAwait(continueOnCapturedContext: false);
sw.Stop();

代码编译并运行正常,但测量的毫秒数比我们在Fiddler中看到的请求时间高约100倍 – Fiddler报告200-300ms,但秒表报告~30,000ms.有关定时异步方法的问题吗?解决方案是在动作本身进行计时(这会很烦人吗?)

最佳答案
这应该可以很好地衡量异步任务完成所需的时间.你需要记住:

>您使用Fiddler进行测量的时间仅用于测量请求,而且您的代码无需处理响应.
>这里的时间存在显着差异,您应该可以轻松地自己计算代码,以查看从请求之前的断点到请求之后需要多长时间.如果这接近30秒,那么你的秒表可能是准确的.
>对我来说没有什么可以让你的时间不准确.

猜你在找的C#相关文章