起初只是为了弄清楚JAVA速度到底咋样的,做了两个测试,结果都表明,JAVA比C快 25%
我的测试环境,CPU:TK-55(1.8G)
操作系统:WINXP
C编译器:GCC 3.4.2
JAVA编译器:JKD1.6update13
测试1:算10000000000次循环累乘
JAVA版代码:
import java.io.IOException;
public class test {
public test() {
double k = 0;
for (int j = 0; j < 100; j++) {
for (int i = 0; i < 100000000; i++) {
k += 3.1415926 * i * j;
}
}
System.out.println(k);
}
public static void main(String[] args) throws IOException {
new test();
}
}
C版代码:
#include <stdio.h> #include <stdlib.h> #include <time.h> int main() { double k = 0; for(int j=0;j<100;j++) for (int i = 0; i < 100000000; i++) { k += 3.1415926 * i*j; } printf("%f\n",k); system("pause"); }
结果 JAVA用时52秒 C用时70秒。
测试2:
用递归算法算斐波那契第45项
JAVA代码:
public class test {
public static int Fibonacci(int n) {
if (n < 2)
return 1;
else {
return Fibonacci(n - 1) + Fibonacci(n - 2);
}
}
public static void main(String[] argc) {
System.out.println(Fibonacci(45));
}
}
C代码:
#include <stdio.h> #include <stdlib.h> int Fibonacci(int n){ if(n<2) return 1; else { return Fibonacci(n-1)+Fibonacci(n-2); } } int main(void) { printf("%d",Fibonacci(45)); system("pause"); return 0; }
这次结果,JAVA 用时22秒 C用时29秒。
两次结果比较下来。JAVA都只占用了C的75%时间,也就是说JAVA比C快25%
我也用VC++6.0测试过。比GCC慢好多。
我也不清楚为什么,不过我真的好佩服SUN的那些计算机专家,做出来的东西真牛!