hosseinmousavi / pench
另一个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());