代码之家  ›  专栏  ›  技术社区  ›  Faizan Anwer Ali

如何对代码进行基准测试以查看哪些代码运行得更快

  •  -4
  • Faizan Anwer Ali  · 技术社区  · 6 年前
    $datetime = new DateTime('2013-01-29');
    $datetime->modify('+1 day');
    echo $datetime->format('Y-m-d H:i:s');
    
    $datetime = new DateTime('2013-01-29');
    $datetime->add(new DateInterval('P1D'));
    echo $datetime->format('Y-m-d H:i:s');
    

    有谁能告诉我在PHP文件的大型操作中哪一个更快、推荐并且占用的内存更少?我想它的日期间隔PID。有经验的开发人员吗?

    2 回复  |  直到 6 年前
        1
  •  2
  •   delboy1978uk    6 年前

    要对代码进行基准测试,可以使用 microtime()

    http://php.net/manual/en/function.microtime.php

    <?php
    
    echo 'modify: ';
    $time = microtime(1);
    for ($x = 0; $x < 10000; $x++) {
        $datetime = new DateTime('2013-01-29');
        $datetime->modify('+1 day');
    }
    echo $datetime->format('Y-m-d H:i:s'); 
    $end = microtime(1);
    $time = $end - $time;
    echo $time . "\n";
    
    echo 'interval: ';
    $time = microtime(1);
    for ($x = 0; $x < 10000; $x++) {
        $datetime = new DateTime('2013-01-29');
        $datetime->add(new DateInterval('P1D'));
    }
    $end = microtime(1);
    $time = $end - $time;
    echo $time . "\n";
    

    此输出:

    modify: 0.039623975753784 
    interval: 0.036103963851929
    

    如您所见,在对每个执行了10000次计算之后,日期间隔是更快的代码。然而,这就是我所说的微观优化!没什么区别!

    看它在这里工作 https://3v4l.org/pCecn

        2
  •  -2
  •   Devendra526    6 年前
    $datetime = new DateTime('2013-01-29');
    $datetime->modify('+1 day');
    echo $datetime->format('Y-m-d H:i:s');
    

    这更快,因为在dateinterval中,您将需要使用难以读取的间隔规范。

    推荐文章