欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2022-05-26 22:35:57
...
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的代码:


    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)!