Запрос WebClient занимает слишком много времени, почему? - PullRequest
2 голосов
/ 07 июня 2011

Это мой код C #.

WebClient client = new WebClient();

while (true) {
   html = client.DownloadString("http://google.com");
   Console.WriteLine(string.Format("\tSize: {0}", html.Length));
}

Требуется около 9 секунд, чтобы получить первый результат.Тогда это занимает около 3 секунд.

Когда я делаю это с Java, это занимает менее 1 секунды.

Почему вы думаете, что это так медленно с C #?Как я могу улучшить это?

Ответы [ 2 ]

0 голосов
/ 23 июля 2012

Я заметил, что первый запрос всегда занимает много времени с использованием WebClient или WebRequest ... Я делаю тот же запрос с классом Socket-Http, который я строю, и это не занимает много времени.

Но после 1-го запроса ондолжно идти быстрее, хорошо.

Найден способ устранения проблемы

Попробуйте явно установить прокси.Если у вас нет определенного прокси, класс HttpRequest будет тратить время на его поиск.Как только он (или не) нашел его, он будет использовать эту информацию для жизни приложения, ускоряя последующие запросы.

Set request.Proxy = null;

0 голосов
/ 13 июня 2011

У вас могут быть проблемы с вашей сетью (как отмечают комментарии).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...