Я разрабатываю приложение, в котором мне нужно загрузить кучу веб-страниц, желательно как можно быстрее. Сейчас я делаю это следующим образом: у меня есть несколько потоков (100's), которые имеют свои собственные System.Net.HttpWebRequest
. Это вроде бы работает, но я не получаю той производительности, которую хотел бы. В настоящее время у меня есть мощное соединение 600+ Мб/с для работы, и оно используется только на 10% (в пиковые моменты). Я полагаю, что моя стратегия несовершенна, но я не могу найти другого хорошего способа сделать это.
Также: Если использование HttpWebRequest
не является хорошим способом загрузки веб-страниц, пожалуйста, скажите об этом :)
Код был полуавтоматически преобразован из java.
Спасибо :)
Обновление:
public String getPage(String link){
myURL = new System.Uri(link);
myHttpConn = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(myURL);
myStreamReader = new System.IO.StreamReader(new System.IO.StreamReader(myHttpConn.GetResponse().GetResponseStream(),
System.Text.Encoding.Default).BaseStream,
new System.IO.StreamReader(myHttpConn.GetResponse().GetResponseStream(),
System.Text.Encoding.Default).CurrentEncoding);
System.Text.StringBuilder buffer = new System.Text.StringBuilder();
//myLineBuff is a String
while ((myLineBuff = myStreamReader.ReadLine()) != null)
{
buffer.Append(myLineBuff);
}
return buffer.toString();
}