lx / gonzalez
此包已废弃,不再维护。未建议替代包。
另一个用于计时PHP代码的微框架
dev-master
2014-12-17 14:51 UTC
Requires
- php: >=5.5.0
Requires (Dev)
- codeclimate/php-test-reporter: dev-master
- phpunit/phpunit: 4.4.*
This package is auto-updated.
Last update: 2019-08-08 10:27:45 UTC
README
¡Ándale! ¡Ándale! ¡Arriba! ¡Arriba! ¡Epa! ¡Epa! ¡Epa! Yeehaw!
"哎呀,又一个用于计时PHP代码的微框架..." 你可能会说。我差不多可以接受这个。
安装
$ composer require "lx/gonzalez" "dev-master"
使用
设置
<?php use \Gonzalez\Runner require_once 'vendor/autoload.php'; $function_to_benchmark = function() { // code to benchmark goes here... }; $runner = new Runner($function_to_benchmark);
基础
$results = $runner->run(1000); $iterations = count($results); $overall_time = array_sum($results); $fastest = min($results); $slowest = max($results); $average = $iterations / $overall_time;
校准
为什么?
假设你想测量你喝一杯啤酒有多快。假设你只有一只手臂。你需要做的步骤是
- 在闪亮的智能手机上的计时器应用中按下
开始
- 把你的智能手机放在桌子上
- 拿起玻璃杯
- 喝
- 放下玻璃杯
- 拿起你的智能手机
- 在闪亮的智能手机上的计时器应用中按下
停止
- 打嗝
你想测量的只是动作 #4,而你实际上测量的是动作 #2 到 #7。不太好。
如何?
Gonzalez提供了一个简单的方式来校准你的基准测试:Gonzalez。
你想要做的最小校准是PHP进入和离开基准测试函数所需的时间。所以如果你想基准测试一个匿名函数,你会取一个空的匿名函数
$empty_anonymous_function = function () {}; $calibrator = new Runner($empty_anonymous_function); $result = $calibrator->run(10000); $calibration_time = min($result); $runner->setCalibrationTime($calibration_time); $result = $runner->run(1000); // ...
一般来说,你的校准函数应该与你要基准测试的函数完全相同,不包括你真正想要基准测试的代码行。