return function () use($n) { $ary = array(); for ($i = 0; $i < $n; $i++) { $ary[$i] = null; } }; }, true)->registerFunctional('splfixed', 'SplFixedArray', function ($n) { return function () use($n) { $ary = new SplFixedArray($n); for ($i = 0; $i < $n; $i++) { $ary[$i] = null; } }; }, true); //$bench->benchmark(10000, 100); $bench->progression(10000, 400, 2); $groups[] = $bench->getResults(); $bench = new \Nicmart\Benchmark\VariabeSizeEngine('Array versus SplFixedArray - Access items'); $bench->registerFunctional('array', 'array', function ($n) { $ary = array(); for ($i = 0; $i < $n; $i++) { $ary[$i] = $i; } return function () use($ary) { for ($i = 0; $i < count($ary); $i++) { $j = $ary[$i]; } }; }, true)->registerFunctional('splfixed', 'SplFixedArray', function ($n) { $ary = new SplFixedArray($n); return function () use($ary) {
for ($i = 1; $i <= $n; $i *= 2) { } }; }, false, function ($n) { return log($n, 2) * 3; })->registerFunctional('linear', 'Linear', function ($n) { return function () use($n) { for ($i = 0; $i < $n; $i++) { } }; }, true)->registerFunctional('square', 'Square', function ($n) { return function () use($n) { for ($i = 0; $i < $n; $i++) { for ($j = 0; $j < $n; $j++) { } } }; }, true, 2)->registerFunctional('cubic', 'Cubic', function ($n) { return function () use($n) { for ($i = 0; $i < $n; $i++) { for ($j = 0; $j < $n; $j++) { for ($h = 0; $h < $n; $h++) { } } } }; }, true, 3); $bench->progression(1000, 8, 4); $groups[] = $bench->getResults(); $template = new \Nicmart\Benchmark\PHPTemplate(); echo $template->render(array('groups' => $groups));