应用程序在java中运行时哪个更快?

时间:2014-10-21 13:10:56

标签: java

在java中运行应用程序时哪个更快?

这样:

static void readPrice(String dir) throws Exception{
    /*Make URL and Connection*/
    URL url = new URL(dir + "/prices/all/");
    HttpURLConnection connection;

    /*Start connection*/
    connection = (HttpURLConnection) url.openConnection();
    /*Send User-Agent*/
    connection.setRequestProperty("User-Agent", user_agent);

    /*Get http response*/
    InputStream is = connection.getInputStream();
    BufferedReader rd = new BufferedReader(new InputStreamReader(is));
    String line = rd.readLine();

    strJson = line;
    /*Read the prices json*/
    pricesJson( strJson );

}

或者这个:

static void readPrice(String dir) throws Exception{
    /*Connection with url */
    connection = (HttpURLConnection) new URL(
            dir + "/prices/all/").openConnection();
    /*Send User-Agent*/
    connection.setRequestProperty("User-Agent", user_agent);
    /*Read the prices json*/
    pricesJson( new BufferedReader(new InputStreamReader(
            connection.getInputStream())).readLine() );

}

我需要非常快速和顺利地申请,因为它必须实时向服务器发出请求

2 个答案:

答案 0 :(得分:1)

内联语句不会改进生成的代码。您保存的只是输入源文件中的一些换行符...

它甚至可能产生相同的字节码。

最可靠的性能评估是基准测试。编译器改变了。代码更改。你很少知道什么是更快的,直到你有基准的替代品。

小心过早优化

  

过早优化是编程中所有邪恶(或至少大部分)的根源。

     

- Donald Knuth,计算机程序设计艺术(1974)

答案 1 :(得分:0)

你不检查自己吗?

只需在代码的开头和结尾添加两个时间戳,并轻松计算时间差(以毫秒为单位)。然后,您可以检查哪些代码在最短的时间内执行,以及是否存在任何显着差异。

//Place at the beginning of the code
long startTime = System.currentTimeMillis();

//Place at the end of the code
long endTime = System.currentTimeMillis();
System.out.println(" Execution  Time: " + (startTime-endTime));