热搜:NVER node 开发 php

PHP_I love U之(2)php衣食父母: Java与PHP效率比拼之一:斐波那契数列

2024-08-16 18:10:02
PHP_I love U之(2)php衣食父母: Java与PHP效率比拼之一:斐波那契数列

PHP_I love U之(1)php衣食父母: Java与PHP效率比拼之一:

斐波那契数列

Fibonacci

解释见:http://zh.wikipedia.org/wiki/%E6%96%90%E6%B3%A2%E9%82%A3%E5%A5%91%E6%95%B0%E5%88%97


  • ( 应该是1 , 维基的公式错了!?!)
  • (n?2)

  •         这次先写 Java的代码:

    class fb {

        static int f1b (int x) {
            
            if ((0==x)||(1==x) ) {  return 1 ;}
             int a;
            a=f1b(x-1)+x;
            System.out.println( a);
            return a;
        }
        public static void main(String[] args) {


            long startTime=System.nanoTime();   //star
            long startTimeMs=System.currentTimeMillis();   //        
    //doSomeThing();  //Coding  
        f1b(999);
        long endTime=System.nanoTime(); //end  
        System.out.println("Run Timming:"+(endTime-startTime)+"ns");
        long endTimeMs=System.currentTimeMillis(); //获取结束时间    
        System.out.println("Runing Time: "+(endTimeMs-startTimeMs)+"ms");    
            
        }//main
    }//class fb


    PHP的代码:

    <?php

        function Fun1($x) //$x)
        {
            if (0==$x) { return 1;echo "\r\n";}
            if (1==$x) { return 1;echo "\r\n";}
            
            $b1= $x + Fun1( $x-1 ) ;
            echo $b1;
            echo "\r\n";
            return $b1 ;
        }
        
        
        $x0=999;//100;
        $t1 = microtime(true);   
     
    //要测试(时间)效率的代码;
     

        Fun1($x0);
        
        $t2 = microtime(true);   
    echo (($t2-$t1)*1000).'ms';


    结果:

    Java:......

    499500

    Time: 104177238ns

    MS time: 104ms


    PHP:...

    ......

    499500

    Time(MS):  161.00978851318ms


    结果:

    JAVA  vs PHP

    104ms  vs 161ms

    1574ms  vs 909ms

    当然是  Java胜出……


    但考虑到 java的代码 要用 Javac 编译一遍……

    而PHP的代码 直接 用php.exe 直接就运行了

    所以 999 次(或9999次)斐波那契数列 计算之后 (都近似为)     1 : 1.6  的效率比 …… PHP还是能接受的吧


    总之:PHP I 继续 love U(you)!