簡體   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