我在IIS上託管的ASP.NET MVC項目存在問題。我淹沒了同樣的要求數百次: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倍。
- 雖然它可能是一個垃圾收集器的問題,但我認爲它不是。我根據每個請求調用了GB。我有同樣的結果,日誌中的延遲仍然存在。
- 這不僅發生在我的MVC項目上,而且還發生在一個空的MVC項目上。
- 我創建了一個新的MVC項目,並向Home/About發送了很多請求。結果是一樣的。
- 我嘗試了一個返回
EmprtActionResult
...的結果。
如果有人知道爲什麼發生這種情況,有針對該問題的解決方案或只是有一個建議......請分享信息,我將非常感激
而且我使用.NET Memory Profiler
,但我無法找到如何跟蹤每個請求,並準確捕捉延遲請求。我可以用.NET Memory Profiler
嗎?如果我不建議使用另一個將爲我工作的分析器。
謝謝!
編輯:我也嘗試過一個空的WebForms項目。只有第一次請求才有延遲......但這是因爲IIS確實正在升溫。並且在接下來的1495次請求中不會出現延遲。
這是在本地運行嗎?你在使用一些ORM嗎? – 2015-02-24 13:48:45
由於延遲似乎經常發生,因此您可以嘗試查看是否可以直接在您的MVC應用程序中使用MiniProfiler查明問題。 – AroglDarthu 2015-02-24 13:56:48
所以我嘗試了它在本地和服務器上。這些結果來自IIS日誌。我認爲不管是否使用任何ORM都沒關係,因爲當我在新的Empty MVC項目上嘗試時,結果是一樣的。 – Dzhambazov 2015-02-24 14:06:56