我们在Azure网站上托管了一个asp.net核心api,它执行以下操作:
var sw = new Stopwatch();
var t1 = InsertToTableStorageAsync();
sw.Start(); // Measure the actual time between these two calls
// more code here
sw.Stop();
Debug.WriteLine(sw.ElapsedMilliseconds); //20 ms in debug mode
var r2 = await PerformAnAzureSearchAsync().ConfigureAwait(false);
//more code here
var r1 = await t1.ConfigureAwait(false);
请注意存储依赖关系何时结束与搜索依赖关系开始之间的差距。那是超过100毫秒。这是Insights门户网站中的一个错误报告吗?或者这是我们可以通过代码改进的东西吗?
更新1/30/2018
我决定在调试时使用Stopwatch
来衡量通话之间的时间,结果为20ms
,比Insights报告的~100ms
快五倍。我知道我正在调试,但我认为发布版本更快。
答案 0 :(得分:0)
这两个电话之间的差距很大,看起来并不正确。这是Application Insights中的错误吗?
我想不是。我也在我身边测试,结果像你一样。状态是成功(绿色)。加载依赖项确实需要一段时间。而且您似乎调用了两个不同的依赖项,因此您确实需要花费一段时间来为项目加载两个依赖项。就像在浏览器中运行页面一样,您还需要一段时间来查看页面。您可以阅读此article(请求时间表),官方结果也会在两次通话之间缩短一段时间。
请求时间表
在另一种情况下,没有特别长的依赖性调用。但是通过切换到时间线视图,我们可以看到内部处理中发生延迟的位置:
答案 1 :(得分:-1)