小编典典
尝试看看您从中得到了什么-进行一些练习以尝试使VM无法优化循环:
import java.util.ArrayList;
import java.util.Random;
class DummyInteger {
private int i;
public DummyInteger(int i) {
this.i = i;
}
public int getI() {
return i;
}
}
public class ObjectCreationTest {
final static int ITERATIONS = 2000000;
public static void main(String[] args) {
Random r = new Random(System.currentTimeMillis());
int[] randArr = new int[ITERATIONS];
for(int i = 0; i < ITERATIONS; i++) {
randArr[i] = r.nextInt();
}
DummyInteger[] iArr = new DummyInteger[ITERATIONS];
long start = System.currentTimeMillis();
for(int i = 0; i < ITERATIONS; i++) {
ArrayList list = new ArrayList();
list.add(new DummyInteger(randArr[i]));
iArr[i] = list.get(0);
}
long end = System.currentTimeMillis();
System.out.println(String.format("Creating %d objects took %d ms",ITERATIONS*2,end-start));
int sum = 0;
for(DummyInteger mi: iArr) {
sum += mi.getI();
}
System.out.println(sum);
}
}
我有
创建4000000个对象耗时678毫秒
每个对象大约为170纳秒。
2020-11-16