smuuf/phpcb

该软件包最新版本(0.5.2)没有可用的许可证信息。

PHP代码性能基准

0.5.2 2021-12-21 15:18 UTC

This package is auto-updated.

Last update: 2024-09-21 21:54:58 UTC


README

PHP tests

phpcb (PHP代码性能基准)

phpcb是一个非常简单且非常轻量级的工具,用于各种小段PHP代码的速度基准测试,当然是用PHP编写的。

为什么

phpcb旨在用于存在多种实现方式的情况——您知道所有这些都会得到完全相同的结果——但您无法决定哪个最终会是最好的(即"最快的")。

要求

  • PHP 7.4+
  • BCMath任意精度数学库;通常与PHP本身一起发货,不应成问题。

安装

composer require --dev smuuf/-hpcb

使用

在某个文件中编写您的微基准测试。例如mymicrobench.php (此处放置在phpcb的根目录中,以便清楚我们需要从正确位置获取Composer的自动加载文件)

<?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();

然后运行它

$ php ./mymicrobench.php

观察结果

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--;) {}
│ });
└