WebRequests являются медленными (взятие 4 секунд), как я ускоряю их?

Я делаю веб-запрос, который является слишком медленным. Требуется приблизительно 3,2 секунды к GetResponseStream () и.8 секунд к ReadToEnd ()

Если я выполняю тот же запрос в веб-браузере, я получаю ответ в меньше, чем секунда... Я задаюсь вопросом, что я могу сделать для ускорения запроса и что могло бы заставить его быть медленным?

На основе других вопросов я видел здесь, я отключил прокси в app.config +, включил макс. соединения, на всякий случай (это все еще медленно). Раздел, который я добавил, был:

 

  
  
  


  

Вот снимок экрана того, на что похож код и что является медленным:

alt text

Я ценил бы любую справку... 4-8 секунд, слишком очень хотят, чтобы пользователь ожидал запроса ajax для завершения.

Спасибо!

5
задан Glorfindel 26 June 2019 в 01:05
поделиться

1 ответ

Строка

responseReader = new StreamReader(webRequest.GetResponse().GetResponseStream());

выполняет сразу 3 действия:

  1. Она получает ответ от данных.
  2. Получает поток ответа от объекта WebResponse.
  3. Открывает поток.

Чтобы улучшить анализ времени и, следовательно, понять, где находится узкое место, сначала следует перекодировать раздел, чтобы разделить задачи.

HttpWebResponse response = WebRequest.GetResponse();
Stream s = response.GetResponseStream();
reader = new StreamReader(s);

В блоке finally вам просто нужно закрыть средство чтения, так как это также закрывает базовый поток. Вместо явного закрытия потока вы можете рассмотреть возможность использования блока using для считывателя.

using (Stream s = response.GetResponseStream()) {
    StreamReader reader = new StreamReader(s);
    responseData = reader.ReadToEnd();
}

Я знаю, что это не решение, но, возможно, оно дает немного больше информации о том, где теряется время.

И последнее предложение: рассмотрите возможность использования асинхронного выполнения, чтобы сократить продолжительность выполнения, воспринимаемую пользователем.

4
ответ дан 15 December 2019 в 00:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: