gpt4 book ai didi

c# - ASP.NET MVC 项目中某些请求的巨大延迟

转载 作者:行者123 更新时间:2023-11-30 12:58:45 26 4
gpt4 key购买 nike

我对 IIS 上托管的 ASP.NET MVC 项目有疑问。我将同一个请求淹没了数百次:

function Test(count){
for(var i=0; i<count; i++){
$.ajax({
url: "http://example.com?someparam=sth&test="+i,
context: document.body
}).done(function() {
console.log("done");
});
}
}
Test(500)

这里是每个请求所花费的时间,以毫秒为单位(这里只是发送请求的一部分):

221
215
225
429
217
228
227
209
236
355
213
224
257
249
223
211
227
1227
168
181
257
3241
201
244
130
198
283
1714
146
136
177
3304
294
868
772
2750
138
1283
221
775
136
235
792
278
641
1707
880
1711

如您所见,某些请求出现峰值,所用时间可能是其他请求平均值的 10 倍以上。

  1. 虽然这可能是垃圾收集器的问题,但我认为不是。我根据每个请求给 GB 打电话。我得到了相同的结果,延迟仍然存在于日志中。
  2. 这不仅发生在我的 MVC 项目上,也发生在一个空的 MVC 项目上。
  3. 我创建了一个新的 MVC 项目并向 Home/About 发送了很多请求。结果是一样的。
  4. 我尝试了一个返回 EmprtActionResult 的操作...同样的结果。

如果有人知道为什么会发生这种情况并且有解决问题的方法或只是有建议......请分享信息,我将非常感激

此外,我正在使用 .NET Memory Profiler,但我无法找到如何跟踪每个请求并准确捕获有延迟的请求。我可以使用 .NET Memory Profiler 来完成吗?如果我不这样做,请推荐另一个适合我的分析器。

谢谢!

编辑: 我还尝试了一个空的 WebForms 项目。仅前 5 个请求有延迟……但这肯定是因为 IIS 正在预热。接下来的 1495 个请求没有延迟。

最佳答案

您的测试方法无法确定您的瓶颈可能出现在何处,只能确定是什么原因导致了您的延迟。

此外,也没有提及这是否是一个孤立的服务器。如果您访问的是生产网站,当访问该网站的访问者请求页面时,您将受到影响。

至少,您需要为此添加一个控件。我将从从同一个 Web 服务器加载一个纯文本文件开始。另一点需要注意的是,大多数网络浏览器都会限制对同一网站的并发请求数。通常,这是两个同时的请求。您的延迟可能是客户端积压的 ajax 请求。

关于c# - ASP.NET MVC 项目中某些请求的巨大延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28696234/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com