1

我正在计时以下循环:

public static void main(String[] args) {
    long time = System.currentTimeMillis();
    List<Hashtable> objects = new ArrayList<Hashtable>(10000000);
    for (int i = 10000000; i > 0; i--) {
        objects.add(new Hashtable());
    }
    System.out.println(System.currentTimeMillis() - time);

}

在 JDK 1.6.0_33 中,每次大约需要 2500 毫秒。切换到 JDK 1.7.0_25 需要5600 ms

与只执行 new Hashtable() 相同,而不将其添加到列表中:Java 1.6: 60 ms, Java 1.7: 460 ms

这看起来很奇怪,Java7 中的某些东西是否恶化了,Hashtable 的内部是否变得更加复杂,或者我只是遗漏了一些东西?

4

0 回答 0