繁体   English   中英

Java long object 数组赋值时间差

[英]Java long object array assignment time difference

我有一段java8的源代码:


public class Test {

    public static void main(String[] args) {


       testObject(1.3);
       testObject(1.4);
    }



    private static void testObject(double num) {
       System.out.println("test:" + num);
       long sta = System.currentTimeMillis();
       int size = 10000000;
       Object[] o = new Object[(int) (size * num)];
       for (int i = 0; i < size; i++) {
           o[i] = "" + i;
       }
      System.out.println("object[]: " + (System.currentTimeMillis() - sta) + " ms");
   }
}

执行结果:

test:1.3
object[]: 7694 ms
test:1.4
object[]: 3826 ms

为什么我的数量是 1.4 * size 运行时间差别这么大?

我想看看 Java 数组赋值是如何工作的,但我在谷歌上找不到任何东西。

此外,您必须记住 System.currentTimeMillis 返回“Wall-Clock-Time”。 如果您的操作系统在for了重新安排,并且另一个进程获得了 cpu,则 Wall-Clock-Time 会增加,但您的程序将不会执行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM