AWAIT_TIME在Azure分析器中的确切含义是什么?

时间:2017-07-24 20:17:40

标签: asp.net-mvc azure azure-application-insights

我正在查看我的一个最慢请求的性能配置文件,我看到超过6秒的AWAIT_TIME,但我无法获得有关它的更多信息。我如何弄清楚过程究竟是什么"等待"?

part of the profiling "hot path"

1 个答案:

答案 0 :(得分:2)

来自Azure's documentation

等待(AWAIT_TIME)

AWAIT_TIME表示代码正在等待另一个任务完成。这通常发生在C#'await'语句中。当代码执行C#'await'时,线程展开并将控制返回给线程池,并且没有阻塞的线程等待'await'完成。但是,逻辑上执行await的线程被“阻塞”,等待操作完成。 AWAIT_TIME表示等待任务完成的阻止时间。+

阻止时间

BLOCKED_TIME表示代码正在等待另一个资源可用,例如等待同步对象,等待线程可用或等待请求完成。

所以它正在等待继续处理所需的东西。我们遇到了与文件上传的长AWAIT_TIME相同的问题,结果发现请求正在等待请求的流被读取(ReadAsMultiPartAsync()对我们来说... ...如果你看看代码中的代码RecASPRequest_RtlUserThreadStart,你可能是罪魁祸首......