簡體   English   中英

WebRequests很慢(需要4秒)我如何加快速度?

[英]WebRequests are slow (taking 4 seconds) how do I speed them up?

我正在做一個太慢的網絡請求。 GetResponseStream()需要大約3.2秒,ReadToEnd()需要0.8秒

如果我在網絡瀏覽器中運行相同的請求,我會在不到一秒的時間內收到響應......我想知道我能做些什么來加快請求速度以及可能導致速度變慢的原因?

基於我在這里看到的其他問題,我在app.config +啟用的最大連接中禁用了代理,以防萬一(它仍然很慢)。 我添加的部分是:

 <system.net>
<defaultProxy enabled="false">
  <proxy/>
  <bypasslist/>
  <module/>
</defaultProxy>
<connectionManagement>
  <add address="*" maxconnection="65000" />
</connectionManagement>

這是代碼的樣子和緩慢的截圖:

替代文字

我很感激任何幫助... 4-8秒對於用戶等待ajax請求完成來說太長了。

謝謝!

這條線

responseReader = new StreamReader(webRequest.GetResponse().GetResponseStream());

一次做三件事:

  1. 它從數據中獲得響應。
  2. 它從WebResponse對象獲取響應流。
  3. 它打開了流。

為了改進時序分析,並因此了解瓶頸的位置,首先應該重新編寫該部分以分離任務。

HttpWebResponse response = WebRequest.GetResponse();
Stream s = response.GetResponseStream();
reader = new StreamReader(s);

finally塊中,您只需關閉閱讀器,因為這也會關閉底層流。 您可以考慮為閱讀器using塊,而不是顯式關閉流。

using (Stream s = response.GetResponseStream()) {
    StreamReader reader = new StreamReader(s);
    responseData = reader.ReadToEnd();
}

我知道這不是一個解決方案,但它可能會提供更多的洞察時間丟失的時間。

最后的建議,考慮使用異步執行來減少用戶所感知的執行持續時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM