HttpURLConnection,跳过文件下载

时间:2011-02-12 01:04:30

标签: java linux performance

我正在编写一个java性能测试程序,它在每个线程中激活HttpURLConnection.openConnection方法并从Web服务器下载文件,但不在本地保存。这是我的代码:

    HttpURLConnection conn = null;
    InputStream is = null;

    try {
        URL prs = new URL(url);
        conn = (HttpURLConnection)prs.openConnection();

        if (conn.getResponseCode() == HttpStatus.SC_OK && conn.getContentLength() > 0 ) {
            is = conn.getInputStream();
            while (is.read() != -1) {

            }           
        } else {
            System.err.println(url+" returned response code : "+conn.getResponseCode()+" and content lengh = "+conn.getContentLength());
        }           
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        try {
            is.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        conn.disconnect();
    }

此测试的目的是查看使用越来越多的线程下载文件(实际上不将其保存到磁盘)所需的时间,并测量处理服务器和客户端上的每个线程所需的时间。我不想在客户端保存文件,只需读取输入流。

问题在于,每次运行此程序时,客户端性能开始下降。我不确定,输入流是否未关闭或是什么。

我们的想法是从每个线程的内存中完全丢弃连接的输入流。

由于

0 个答案:

没有答案