另一个PHP基准测试系统

dev-master 2019-05-18 21:41 UTC

This package is not auto-updated.

Last update: 2024-09-29 04:42:58 UTC


README

另一个PHP基准测试系统

此库基准测试PHP应用程序并显示time_elapsed、memory_usage和memory_peak_usage,但您应该考虑没有方法可以获取应用程序消耗的确切内存量,因为PHP没有报告它的方法,memory_get_usage(false)只报告分配的内存,而不是实际使用的内存,但它是应用程序实际使用内存的近似值。

通过composer安装pench

composer require hosseinmousavi/pench:dev-master

然后包含composer自动加载文件

require 'vendor/autoload.php';

或者直接包含

require 'src/pench.php';

pench API非常简单,以下为示例

require 'pench.php';
$haystack = rang(1,1000000);

pench::start();
foreach($haystack as $value) {
  echo $value;
}
$report['foreach']=pench::end();
var_dump($report);

输出结果

array (size=1)
  'foreach' => 
    array (size=3)
      'time_elapsed' => string '24.709722042084 Sec' (length=19)
      'memory_usage' => string '112 Byte' (length=8)
      'peak_memory_usage' => string '176 Byte' (length=8)

您还可以使用dump()打印报告,并且不需要调用end(),因为dump()本身会调用它,您还可以传递一个标签给dump(),这样就可以清楚地知道哪个结果属于程序的哪个部分。

require 'pench.php';

pench::start();

$haystack = rang(1,1000000);

array_walk($haystack,function($value){

  echo $value;

});

pench::dump('array_walk');

输出结果

array (size=1)
  'array_walk' => 
    array (size=3)
      'time_elapsed' => string '0.11225986480713 Sec' (length=20)
      'memory_usage' => string '152 Byte' (length=8)
      'peak_memory_usage' => string '176 Byte' (length=8)

要对多个部分进行基准测试,您应该每次都调用pench::start()。

pench::start();

foreach($haystack as $value) {

  echo $value;

}

$report['foreach']=pench::end();//or pench::dump('array_foreach') or pench::dump() to print report inline

pench::start();

array_walk($haystack,function($value){

  echo $value;

});

$report['array_walk']=pench::end();//or pench::dump('array_walk') to print report inline

使用benchmark()获取最后一个报告

pench::start();

foreach($haystack as $value) {

  echo $value;

}

pench::end();//or pench::dump('array_foreach') or pench::dump() to print report inline

var_dump(pench::benchmark());