最近在研究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));注释掉那部分是可选的,用来比较关和不关连接所用的时间
上面得出一个很奇怪的结论,
关掉连接时用时比不关还少,就是说关掉连接之后再发请求会更快理论上保持连接响应会更快才对吧?迷惑中~~求解救 

解决方案 »

  1.   

    给个大概数据参考
    执行shutdown时,t1=280 t2=150
    不执行shutdown时,t1=280 t2=220
      

  2.   

    疏忽,上面的数据应该是
    connect1:280   connect2:150

    connect1:280   connect2:220
    求解答!
      

  3.   


    对我知道,但如果我在客户端执行shutdown不就是我主动关闭连接了么我最初意图是想验证长连接是否可以节省连接耗时,能节省多少