Wallogit.com
2017 © Pedro Peláez
A quick to write and easy to use PHP timer for benchmarking., (*1)
require 'vendor/autoload.php';
use Alexpw\Timer\Timer;
$t = new Timer;
$max = 500000;
$xs = range(1, $max);
$odd = function ($x) {
return $x % 2 === 1;
};
function isOdd($x) {
return $x % 2 === 1;
}
$rs = array();
$run = $t->start("odd? control");
foreach ($xs as $x) {
if ($x % 2 === 1) {
$rs[] = $x;
}
}
$t->end($run);
$rs = array(); // use the gap between runs to teardown/setup
$run = $t->start("odd? closure");
foreach ($xs as $x) {
if ($odd($x)) {
$rs[] = $x;
}
}
$t->end($run);
$rs = array();
$run = $t->start("odd? function");
foreach ($xs as $x) {
if (isOdd($x)) {
$rs[] = $x;
}
}
$t->end($run);
$rs = array();
$run = $t->start("odd? array_filter closure");
$rs = array_filter($xs, $odd);
$t->end($run);
$rs = array();
$run = $t->start("odd? array_filter function");
$rs = array_filter($xs, 'isOdd');
$t->end($run);
unset($rs);
echo $t->render();
label time (ms) perc mem ------------------------------------------------------------------------------ odd? control 71.5 11.90 22.98 MB odd? closure 131.3 21.85 22.98 MB odd? function 123.9 20.62 22.98 MB odd? array_filter closure 125.9 20.95 22.98 MB odd? array_filter function 151.6 25.22 22.98 MB ------------------------------------------------------------------------------
The tim, (*2)
Licensed under the MIT License - see the LICENSE file for details, (*3)