今天我做了一个简单的测试来比较java和c之间的速度 - 一个简单的循环使得整数“i”从0增加到20亿。Java比C更快
我真的希望c语言比java更快。我对结果感到惊讶:
java所需时间:约。 1.8秒
c:约需要几秒钟的时间。 3.6秒。
我不认为java是一种更快的语言,但我不明白为什么在我的简单程序中循环速度是c的两倍?
我在程序中做了一个关键的错误?还是MinGW编译器配置不好或者什么的?
public class Jrand {
public static void main (String[] args) {
long startTime = System.currentTimeMillis();
int i;
for (i = 0; i < 2000000000; i++) {
// Do nothing!
}
long endTime = System.currentTimeMillis();
float totalTime = (endTime - startTime);
System.out.println("time: " + totalTime/1000);
}
}
的C程序
#include<stdio.h>
#include<stdlib.h>
#include <time.h>
int main() {
clock_t startTime;
startTime = clock();
int i;
for (i = 0; i <= 2000000000; i++) {
// Do nothing
}
clock_t endTime;
endTime = clock();
float totalTime = endTime - startTime;
printf("%f", totalTime/1000);
return 0;
}
的循环在Java中很可能被忽略。尝试在循环中做一些有意义的事情,比如更新总和并在循环之后打印它。另请参阅[本主题](http://stackoverflow.com/questions/504103/how-do-i-write-a-correct-micro-benchmark-in-java) –
优化程序。正如桑杰说的。 – Devolus
你打开了C构建的优化吗?我猜你可能没有,否则,你的C代码应该返回0秒。 – Mysticial