HttpClient长连接的问题

zhangxindeshui 2011-03-22 03:20:11
最近在研究httpclient保持长连接是否能提高响应速度的问题。
想先请求百度首页,然后再向贴吧发请求,看在已经跟首页取得连接的情况下再请求贴吧会不会更快

HttpGet httpget = new HttpGet("http://www.baidu.com/");//百度首页
HttpGet httpget2 = new HttpGet("http://tieba.baidu.com/index.html");//贴


httpclient = new DefaultHttpClient();
t1 = System.currentTimeMillis();
HttpResponse response = httpclient.execute(httpget1);
t2 = System.currentTimeMillis();
response.getEntity().consumeContent();
/*
httpclient.getConnectionManager().shutdown(); //关掉链接
httpclient = new DefaultHttpClient();
*/
t3 = System.currentTimeMillis();
response = httpclient.execute(httpget2);
t4 = System.currentTimeMillis();
response.getEntity().consumeContent();
httpclient.getConnectionManager().shutdown();

System.out.println("connect1:" + (t2-t1));
System.out.println("connect2:" + (t4-t3));

注释掉那部分是可选的,用来比较关和不关连接所用的时间
上面得出一个很奇怪的结论,
关掉连接时用时比不关还少,就是说关掉连接之后再发请求会更快

理论上保持连接响应会更快才对吧?迷惑中~~求解救
...全文
1183 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangxindeshui 2011-03-22
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lyon_z 的回复:]

不明白楼主的意图。长连接是靠服务端不关闭响应流而一直保持连接来实现。
[/Quote]

对我知道,但如果我在客户端执行shutdown不就是我主动关闭连接了么

我最初意图是想验证长连接是否可以节省连接耗时,能节省多少
lyon_z 2011-03-22
  • 打赏
  • 举报
回复
不明白楼主的意图。长连接是靠服务端不关闭响应流而一直保持连接来实现。
zhangxindeshui 2011-03-22
  • 打赏
  • 举报
回复
疏忽,上面的数据应该是
connect1:280 connect2:150

connect1:280 connect2:220
求解答!
zhangxindeshui 2011-03-22
  • 打赏
  • 举报
回复
给个大概数据参考
执行shutdown时,t1=280 t2=150
不执行shutdown时,t1=280 t2=220

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧