LINQ评估应该花几秒钟?

时间:2017-08-24 00:15:45

标签: c# .net linq shouldly

我们有一个ASP.NET网站(Nancy),它使用async / await,而且应该用于断言。

我们看到一些缓慢的请求(通过AppInsights),并且信息显示线程被阻止'在ShouldAllBe上,特别是Compile来电。

以下是AppInsights Profiler ETL跟踪的示例: image

在上面的屏幕截图中,等待ShouldAllBe完成后花费了3.2秒。 (参考BLOCKED_TIME的含义:https://docs.microsoft.com/en-us/azure/application-insights/app-insights-profiler

GetItemsFromRedisAsync方法如下所示:

keys.ShouldNotBeEmpty();
keys.ShouldAllBe(cacheKey => !string.IsNullOrWhiteSpace(cacheKey));

// go to redis

那么,就像LINQ编译被卡住/阻塞一样?我无法通过一个简单的控制台应用程序复制1000个字符串,但想知道这里是否有人可以提供进一步的指导?

让我感到困惑的是它为什么显示BLOCKED_TIME? 来自AppInsights文档:

  

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

如何才能对LINQ评估中的任何一个进行评估?

0 个答案:

没有答案