相关疑难解决方法(0)

为什么传递两个字符串参数比一个列表参数更有效

下面的代码分别调用两个简单的函数100亿次.

public class PerfTest {
    private static long l = 0;

    public static void main(String[] args) {
        List<String> list = Arrays.asList("a", "b");
        long time1 = System.currentTimeMillis();
        for (long i = 0; i < 1E10; i++) {
            func1("a", "b");
        }
        long time2 = System.currentTimeMillis();
        for (long i = 0; i < 1E10; i++) {
            func2(list);
        }
        System.out.println((time2 - time1) + "/" + (System.currentTimeMillis() - time2));
    }

    private static void func1(String s1, String s2) { l++; }
    private static void func2(List<String> sl) …
Run Code Online (Sandbox Code Playgroud)

java performance

15
推荐指数
1
解决办法
612
查看次数

Java:空循环使用多长时间?

我试图在Java中测试自动装箱和拆箱的速度,但是当我尝试将它与原语上的空循环进行比较时,我注意到了一个奇怪的事情.这个片段:

for (int j = 0; j < 10; j++) {
    long t = System.currentTimeMillis();
    for (int i = 0; i < 10000000; i++)
        ;
    t = System.currentTimeMillis() - t;
    System.out.print(t + " ");
}
Run Code Online (Sandbox Code Playgroud)

每次我运行它,它返回相同的结果:

6 7 0 0 0 0 0 0 0 0

为什么前两个循环总是需要一些时间,其余的似乎被系统跳过?

在这篇文章的答案中,据说Just-In-Time编译将能够优化这一点.但如果是这样,为什么前两个循环还需要一些时间?

java performance primitive jit loops

7
推荐指数
2
解决办法
2538
查看次数

标签 统计

java ×2

performance ×2

jit ×1

loops ×1

primitive ×1