当前位置 博文首页 > px96004的专栏:JAVA真的比C快

    px96004的专栏:JAVA真的比C快

    作者:[db:作者] 时间:2021-09-12 12:10

    起初只是为了弄清楚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的那些计算机专家,做出来的东西真牛!

    ?

    cs