作者:淡淡木香coolgirl | 来源:互联网 | 2023-05-19 00:58
最近在研究httpclient保持长连接是否能提高响应速度的问题。想先请求百度首页,然后再向贴吧发请求,看在已经跟首页取得连接的情况下再请求贴吧会不会更快HttpGethttpget
最近在研究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));
注释掉那部分是可选的,用来比较关和不关连接所用的时间
上面得出一个很奇怪的结论,
关掉连接时用时比不关还少,就是说关掉连接之后再发请求会更快
理论上保持连接响应会更快才对吧?迷惑中~~求解救
4 个解决方案
给个大概数据参考
执行shutdown时,t1=280 t2=150
不执行shutdown时,t1=280 t2=220
疏忽,上面的数据应该是
connect1:280 connect2:150
和
connect1:280 connect2:220
求解答!
不明白楼主的意图。长连接是靠服务端不关闭响应流而一直保持连接来实现。