WebClientに問題があります。WebClientが非常に遅い
非常に遅いです。 1つのWebサイトからStringをダウンロードするのに約3〜5秒かかります。 私はネットワークに問題はありません。
これは私のModifed WebClientです。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
namespace StatusChecker
{
class WebClientEx: WebClient
{
public CookieContainer CookieContainer { get; private set; }
public WebClientEx()
{
CookieContainer = new CookieContainer();
ServicePointManager.Expect100Continue = false;
Encoding = System.Text.Encoding.UTF8;
WebRequest.DefaultWebProxy = null;
Proxy = null;
}
public void ClearCookies()
{
CookieContainer = new CookieContainer();
}
protected override WebRequest GetWebRequest(Uri address)
{
var request = base.GetWebRequest(address);
if (request is HttpWebRequest)
{
(request as HttpWebRequest).CookieContainer = CookieContainer;
}
return request;
}
}
}
UPDATE: のwiresharkで、私は、単一のDownladStringは、数千のパケットを送信し、受信していることがわかりました。
Webクライアントは、特に低速ではない、問題はどこか別の場所でなければなりません...おそらくあなたがダウンロードしているウェブサイトが遅いでしょうか? –
WireSharkのようなトラフィックロガーを使用して、遅延が実際には単一の要求と応答フレームの間にあるかどうかを判断する必要があります(ネットワーク/サーバーのスローダウンによって引き起こされる)か、クライアントコードが不正確であり、エラー。 –
また、複数のダウンロードをループで実行してプロセスを「ウォームアップ」します(たとえば、アセンブリのロードが不要になります)。 –