次のコードがあります。
List<Long> array = new ArrayList<>();
for (int i = 0; i < 30000; i++)
{
array.add(Long.valueOf(i));
}
for (int j = 0; j < 30000; j++)
{
for (int i = 0; i < 30000 - j; i++)
{
array.set(i, array.get(i) + j);
}
}
これをコンパイルして、ローカル マシン (JRE 1.7_0_71、Win 7 64 ビット、4 コア、8 GB RAM) の Oracle JVM で実行すると、実行に約 3.5 秒かかります。
1.run: 3446ms
2.run: 3485ms
3.run: 3546ms
4.run: 3721ms
5.run: 3573ms
IBM JVM (j9、java 7、ビルド pap6470_27sr2-20141101_01(SR2)) を搭載した AIX マシン (POWER7+、16 コア、64GB RAM) で実行すると、実行ごとにほぼ 9 秒で結果が得られます。
1.run: 8518ms
2.run: 8548ms
3.run: 8499ms
4.run: 8486ms
5.run: 9235ms
どこで捕まえることができますか?