我有以下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
有没有办法在第一次请求时最小化(或更好地摆脱)这种影响?禁用自动检测设置不是一个选项,因为我们应该尊重用户的代理设置。