Java openStream () рабочее время зависит от кода веб-сайта? - PullRequest
0 голосов
/ 11 октября 2011

Я сделал сегодня тест, и мои результаты странные.Я использовал приведенный ниже код и протестировал некоторые веб-страницы.

long start = System.nanoTime();
URL url = new URL("http://wp.pl");
System.out.println("" + (System.nanoTime() - start) / 1000000);
start = System.nanoTime();
InputStream is = url.openStream();
System.out.println("" + (System.nanoTime() - start) / 1000000);

start = System.nanoTime();
InputStreamReader isr = new InputStreamReader(is, "UTF-8");
System.out.println("" + (System.nanoTime() - start) / 1000000);

start = System.nanoTime();
BufferedReader in = new BufferedReader(isr);
System.out.println("" + (System.nanoTime() - start) / 1000000);
//After this point reading whole site goes nice and fast 

Только второй раз отличался (остальное было около 0).Вот время для разных сайтов (url.openStream ()):

адрес |время |строки кодаyahoo.com/ 1000 943bbc.com 230 1500news.google.pl/ 138 384free-ebooks.net 776 668wp.pl 3066 2811

Дело в том, что время отличается, и похоже, что оно зависит от длины кода сайта.Мой вопрос: загружает ли url.openStream () весь код сайта?Стоит ли просто открывать поток и ждать, пока пользователь его прочитает?

1 Ответ

1 голос
/ 11 октября 2011

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

На многих веб-серверах фактическая отправка данных - самое короткое время: к тому времени, когда веб-сервер определит, какойзаголовки для отправки (и, следовательно, начинает отправлять ответ), он уже знает полный контент.

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