代码之家  ›  专栏  ›  技术社区  ›  Jeff

PHP基准函数计时器脚本

php
  •  4
  • Jeff  · 技术社区  · 16 年前

    function subject_one() {
        $str = preg_match_all( ...[SNIP]... );
        // ...[SNIP]...
        return $str;
    }
    
    function subject_two() {
        $reader = new XMLReader;
        $writer = new XMLWriter;
        // ...[SNIP]...
        echo $str;
    }
    

    是否可以编写一个函数来执行此操作?

    例如:

    function benchmark_two_functions( $first_function, $second_function ) {
        // do stuff
        return $length_of_time_to_complete_each_function
    }
    

    3 回复  |  直到 16 年前
        1
  •  11
  •   vdrmrt    16 年前

    试试这个

    function subject_one(){
        sleep(1);
    }
    
    function subject_two(){
        sleep(5);
    }
    
    /* Result should be ~4 */
    print benchmark_two_functions('subject_one','subject_two');
    
    function getmicrotime() { 
        list($usec, $sec) = explode(" ",microtime()); 
        return ((float)$usec + (float)$sec);
    }
    
    function benchmark_two_functions($first_function, $second_function){
        $start = getmicrotime();
        $first_function();
        $exec_time_first = getmicrotime() - $start;
    
        $start = getmicrotime();
        $second_function();
        $exec_time_second = getmicrotime() - $start;
    
        return $exec_time_first - $exec_time_second;
    }
    
        2
  •  0
  •   dusoft    16 年前
        3
  •  0
  •   Björn    16 年前

    PEAR has a Benchmark XDebug 如果您具有服务器的root访问权限并可以安装它,则是一个更好的工具。

    推荐文章