loophp/nanobench

PHP 的一个简单轻量级基准测试工具。

资助包维护!
drupol

1.1.1 2021-07-03 20:23 UTC

README

Latest Stable Version GitHub stars Total Downloads GitHub Workflow Status Scrutinizer code quality Type Coverage Code Coverage License Donate! Donate!

PHP Nanobench

PHP 的一个简单轻量级基准测试工具。

安装

composer require loophp/nanobench

用法

<?php

declare(strict_types=1);

namespace App;

use loophp\nanobench\Benchmark;
use loophp\nanobench\Time\HrClock;
use loophp\nanobench\Time\Stopwatch;

include __DIR__ . '/vendor/autoload.php';

$callable = static function (int $secondsToWait): int {
    sleep($secondsToWait);

    return $secondsToWait ** 2;
};

$benchmark = new Benchmark(new Stopwatch(new HrClock()), $callable, 3);
$duration = $benchmark->run()->getDuration();

$duration->asNanosecond();
$duration->asMicrosecond();
$duration->asMillisecond();
$duration->asSecond();

$benchmark->getReturn(); // Return value of the callable that has been benchmarked

文档

API

API 代码相当轻量,并完全在 基准接口 中描述。

代码质量、测试和基准

每次将更改引入到库中时,Github 都会运行测试。

库中有用 PHPSpec 编写的测试。您可以在 spec 目录中查看它们。运行 composer phpspec 触发测试。

在每次提交之前,都会用 GrumPHP 执行一些检查,运行 composer grumphp 手动检查。

测试质量通过 Infection PHP 变异测试框架进行测试,运行 composer infection 尝试它。

静态分析器也在控制代码。已启用 PHPStanPSalm 的最大级别。

贡献

请随意通过发送 Github pull 请求来贡献。我反应非常快 :-)

如果您不能为代码做出贡献,您也可以在 GithubPaypal 上赞助我。

变更日志

查看 CHANGELOG.md 以获取基于 git 提交 的变更日志。

有关更详细的变更日志,请检查 发布变更日志