Java openStream()的工作时间取决于网站代码?

Java openStream()的工作时间取决于网站代码?,java,html,time,Java,Html,Time,我今天做了一个测试,结果很奇怪。我使用下面的代码测试了一些网页 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("" + (

我今天做了一个测试,结果很奇怪。我使用下面的代码测试了一些网页

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 943
bbc.com 230 1500
news.google.pl/138 384
免费电子书776 668
wp.pl 3066 2811

关键是时间是不同的,看起来它取决于站点代码的长度。我的问题:
url.openStream()是否下载整个站点代码?它不应该只是打开流并等待用户读取它

openStream至少要等待服务器开始发送响应。否则,它无法知道是否可以返回
InputStream
,或者是否应该抛出异常


在许多web服务器上,数据的实际发送是最短的时间:当web服务器决定发送哪些标头(并因此开始发送响应)时,它已经知道了全部内容。

如果您测量了实际读取时间(仅构建
BufferedReader
),则代码不会显示。你也测量过吗?如果是这样,你发现了什么?“…w8供用户阅读?”鉴于这些是国际论坛,我会正确拼写单词,而不是等待人们理解“短信”的拼写。有没有办法更快地阅读URL内容(仅前20行)?我怀疑使用另一种机制会明显更快,因为慢化因素可能是网络通信,而不是纯粹的CPU时间。