我目前正在尝试分析 ASP.NET MVC 剃刀视图呈现非常缓慢的性能问题:向浏览器返回响应需要 40 多秒。这个问题并不总是发生:通常页面在 ~1/2 秒内加载。
下面是由所述页面缓慢加载时组成的 MiniProfiler 跟踪的一部分的图像。右侧的列是自请求开始以来经过的时间,并且在渲染剃刀视图期间,跟踪显示了几秒钟的大跳跃。我不太明白的是,为什么其他两列(“持续时间(毫秒)”和“有孩子(毫秒)”)中的时间没有反映这些多秒延迟:我希望在那里看到大量数字也是。
让我大吃一惊的是,在执行“查找:EditorTemplates/...”步骤时似乎会出现很大的延迟。请注意,这些模板不存在(旁注:我没有明确尝试渲染这些编辑器模板,但搜索它们似乎是由页面上的kendo mvc 网格引起的)。是否会因等待磁盘 I/O 确定这些文件不存在而导致大量延迟?如果是这样:这怎么可能只是偶尔需要几秒钟并且通常相对较快地完成?
我应该如何解释这些结果以及导致多秒延迟的原因是什么?