相同的 for 循环 为什么 Java 比 c 的速度快?

查看 125|回复 12
chaoschick
OP
  
public class DuffDevice {
private static long duff2(long count) {
long i = 0;
do {
++i;
} while (--count >0);
return i;
}
public static void main(String[] args) {
long duff;
long start, end;
DuffDevice duffDevice = new DuffDevice();
start = System.currentTimeMillis();
duff = duff2((long) Integer.MAX_VALUE - 7);
end = System.currentTimeMillis();
System.out.println(duff + " " + (end - start) + " ms");
}
}
输出
2147483640 639 ms
我改了一下 i 值的类型 耗时 变长了
所以 应该没把循环优化掉吧
chaoschick
OP
  
@diivL [admin@iZt4ngr7j75qbzgg9ilsifZ c]$ gcc duff2.c -O3 && ./a.out
3688484 us
3688.484 ms
diivL   
@chaoschick 你用的是 #6 的代码吗? 用你主贴的代码,然后用 gcc duff2.c -O3 && ./a.out
您需要登录后才可以回帖 登录 | 立即注册

返回顶部