[英]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.