全部で 404 の 100 ページをリクエストしました。
{
var s = DateTime.Now;
for(int i=0; i < 100;i++)
DL.CheckExist("http://google.com/lol" + i.ToString() + ".jpg");
var e = DateTime.Now;
var d = e-s;
d=d;
Console.WriteLine(d);
}
static public bool CheckExist(string url)
{
HttpWebRequest wreq = null;
HttpWebResponse wresp = null;
bool ret = false;
try
{
wreq = (HttpWebRequest)WebRequest.Create(url);
wreq.KeepAlive = true;
wreq.Method = "HEAD";
wresp = (HttpWebResponse)wreq.GetResponse();
ret = true;
}
catch (System.Net.WebException)
{
}
finally
{
if (wresp != null)
wresp.Close();
}
return ret;
}
2 回実行すると、00:00:30.7968750 と 00:00:26.8750000 かかることがわかります。次に、Firefoxを試して、次のコードを使用します
<html>
<body>
<script type="text/javascript">
for(var i=0; i<100; i++)
document.write("<img src=http://google.com/lol" + i + ".jpg><br>");
</script>
</body>
</html>
私のコンプタイムを使って数えてみると、およそ4秒でした。4 秒は、私のアプリよりも 6.5 ~ 7.5 高速です。何千ものファイルをスキャンする予定なので、30 分ではなく 3.75 時間かかるのは大きな問題です。このコードを高速化するにはどうすればよいですか? 誰かがFirefoxが画像をキャッシュすると言うことは知っていますが、1)リモートサーバーからのヘッダーをチェックして、更新されているかどうかを確認する必要があります(これがアプリに実行してもらいたいことです)2)私はそうではありません本文を受け取ったら、私のコードはヘッダーのみを要求する必要があります。それで、どうすればこれを解決できますか?