我正在编写一些性能测试,并希望能够为异步方法计时。代码如下所示,其中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。有关定时异步方法的问题吗?解决方案是在动作本身进行计时(这会很烦人吗?)
答案 0 :(得分:3)
这应该可以很好地衡量异步任务完成所需的时间。你需要记住: