我有一个小程序:
public class Main {
public static void main(String[] args) {
for(int p = 0;p<10;p++) {
long start = System.currentTimeMillis();
int j = Integer.MAX_VALUE;
int d = 2;
int c = 0;
for(int i =Integer.MAX_VALUE; i>0;i--) {
if(i==Integer.MAX_VALUE)System.out.println(j);
c=j/d;
}
System.out.println(System.currentTimeMillis()-start);
}
}
}
这是我得到的结果:
$ java Main
2147483647
62 // Almost instantaneous
2147483647
1437 // Normal speed
2147483647
1455 // Same
...
我通过禁用JIT来确保这不是一个简单的错误,在这种情况下,所有迭代的速度都相同:
$ java -Djava.compiler=NONE Main
2147483647
26879
2147483647
26484
2个问题