这个简单的代码片段输出范围为11 - 13毫秒。现在assuming
为了问题,x的增量只是一条指令,2.3Ghz的心灵应该花费一秒钟来执行,因为intMAX的值接近20亿。为什么答案按几毫安(11-13毫升)而不是秒(900毫升--1100毫安)?
long time1 = System.currentTimeMillis();
int x = 0;
while (x < Integer.MAX_VALUE) {
x++;
}
System.out.println(System.currentTimeMillis() - time1);
答案 0 :(得分:2)
理论上 - 这可以优化到x = Integer.MAX_VALUE,然后如果x之后没有使用,则完全删除
越来越难以测试事情需要花多长时间才能得到优化,特别是如果未使用
尝试将x设置为不同的起始值,并在计时器之后使用x进行打印或其他导致打印的计算