次の C# コードがあります。
for (var i = 0; i < 10; i++)
{
var stopwatch = Stopwatch.StartNew();
var request = (HttpWebRequest)WebRequest.Create("http://www.google.com/");
var response = request.GetResponse();
response.Close();
Console.WriteLine(stopwatch.Elapsed.TotalMilliseconds);
}
IE (システム) プロキシ設定の [設定を自動的に検出する]チェックボックスをオンにすると、次の出力が得られます。
12164,0891
265,8832
248,4743
235,4291
239,6717
234,2011
236,3179
287,2781
239,5829
248,0245
チェックを外すと、これらの結果が得られます
991,2215
269,6613
241,1335
241,2875
234,1904
227,1039
226,7818
224,4154
227,6287
224,3641
ご覧のとおり、自動プロキシ検出を有効にすると、最初のリクエストに大きな影響があります。次の記事で説明されている回避策を実装しようとしましたが、役に立ちませんでした。
http://blogs.msdn.com/b/danielvl/archive/2009/03/23/faster-proxy-detection-for-httpwebrequest.aspx
最初のリクエストに対するこの影響を最小限に抑える (または取り除く) 方法はありますか? ユーザーのプロキシ設定を尊重する必要があるため、自動的に検出する設定を無効にすることはできません。