gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 15:42:55 27 4
gpt4 key购买 nike

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

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
免费电子书.net 776 668
wp.​​pl 3066 2811

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

最佳答案

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

在许多网络服务器上,实际发送数据的时间是最短的:当网络服务器决定发送哪些 header (并因此开始发送响应)时,它已经知道完整的内容。

关于Java openStream() 工作时间取决于网站代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7726192/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com