我怎么知道方法的开始时间

时间:2017-11-08 06:01:36

标签: php

现在我正在尝试为我的应用程序进行基准测试。

所以我写了一个简单的代码。

以下是我的代码

$startTime = microtime();
$endTime = microtime();

print $endTime - $startTime

我不认为我这样做的方式很有效,所以我想改进。

我必须测试几个函数,但我认为以下列格式执行此操作会非常困难。

所以现在我尝试创建一个简单的Benchmark类。

我可以获得所有功能的名称,但我无法获得开始时间。

public static function performance($_this) : array
   {
       $trace = debug_backtrace();

       $performanceData = [
           'Processing Time(ms): ' . ( microtime(true) - `{Method start time}` ),
           'Memory(MB)' . memory_get_usage() / 1000000,
           'CPU(%)' . sys_getloadavg()[0],
           'Call Function Name' .$trace[3]['function'],
           'Call Class Name' .$trace[3]['class']
       ];

       return $performanceData;
   }

提前谢谢

2 个答案:

答案 0 :(得分:3)

您是否考虑过其中一种解决方案而不是自己动手?

Symfony StopwatchXDebug profiling

答案 1 :(得分:0)

还有另一种使用不同库的方法,但我决定使用我创建的类。

在父类创建者中创建了startedTime个变量,并添加了microtime。

在此之后,我获得了一个出生并想要测试函数的孩子的价值__destruct然后我获得了这个值。