06/10
2017
Wallogit.com
2017 © Pedro Pelรกez
PHP Code Benchmark
phpcb is a very simple and very lightweight tool for speed benchmarking of various little pieces of PHP code, written in PHP, of course., (*2)
phpcb is meant to be used in those situations when there are multiple ways of how to do something - and you know all will have the exact same result - but you just can't decide which would ultimately be the best (meaning "fastest") to use., (*3)
composer require --dev smuuf/-hpcb
Write your microbenchmarks in a some file. For example mymicrobench.php (here placed in phpcb's root directory, so it's clear we rquire Composer's autoload file from correct place):, (*4)
<?php
require __DIR__ . '/../vendor/autoload.php';
$bench = new \Smuuf\Phpcb\PhpBenchmark;
const COUNT = 100;
$bench->addBench(function() {
for ($i = 1; $i <= COUNT; $i++) {}
});
$bench->addBench(function() {
for ($i = COUNT; $i > 0; $i--) {}
});
$bench->addBench(function() {
for ($i = COUNT; $i--;) {}
});
$bench->addBench(function() {
for ($i = -COUNT; $i++;) {}
});
$bench->run();
And then run it:, (*5)
$ php ./mymicrobench.php
And observe results:, (*6)
โ PHP Code Benchmark (phpcb)
โ PHP 7.4.27
Engine used: Chaotic Engine
Total time: 1.3220 sec
Iterations: 1 000 000
โโ 2. Score: 100.00, 0.2660 sec
โ
โ $bench->addBench(function() {
โ for ($i = COUNT; $i > 0; $i--) {}
โ });
โ
โโ 1. Score: 86.54, 0.3074 sec, 1.16x slower
โ
โ $bench->addBench(function() {
โ for ($i = 1; $i <= COUNT; $i++) {}
โ });
โ
โโ 4. Score: 71.13, 0.3740 sec, 1.41x slower
โ
โ $bench->addBench(function() {
โ for ($i = -COUNT; $i++;) {}
โ });
โ
โโ 3. Score: 71.02, 0.3746 sec, 1.41x slower
โ
โ $bench->addBench(function() {
โ for ($i = COUNT; $i--;) {}
โ });
โ