加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 04:37:24 所属栏目:百科 来源:网络整理
导读:我正在写一些性能测试,并希望能够为异步的方法计时.代码如下所示,其中action是Func >: var sw = new Stopwatch();HttpResponseMessage response = null;sw.Start();response = await action().ConfigureAwait(continueOnCapturedContext: false);sw.Stop();

我正在写一些性能测试,并希望能够为异步的方法计时.代码如下所示,其中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秒,那么你的秒表可能是准确的.
>对我来说没有什么可以让你的时间不准确.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读