angle/chrono

测量 PHP 代码执行时间最简单的方式。

v1.0.4 2020-12-15 21:32 UTC

This package is auto-updated.

Last update: 2024-09-16 05:28:21 UTC


README

测量 PHP 代码执行时间最简单的方式。

介绍

每次我需要基准测试某事时,我都会发现自己重新发明轮子并进行手动时间计算。这损害了我的生产力。我想要一个简单易用的包,当我需要测量 PHP 中的执行时间时可以随时使用。

  • 易于记忆
  • 100% 测试
  • 框架无关
  • 无依赖

安装

composer require angle/chrono

文档

以下示例中使用了此语句

use Angle\Chrono;

基准测试代码的最简方法是使用基准测试方法

echo Chrono::benchmark(function () {
    sleep(1);
});

输出

Time: 1 second (1002 ms)

默认情况下,它调用 'meter' 方法以美化输出。可选地,您可以传递第二个参数以调用任何可用的格式化方法(毫秒、秒、分钟)

echo Chrono::benchmark(function () {
    sleep(1);
}, 'ms');

输出

1002

手动使用

Chrono::start();

// Do something...

echo Chrono::stop(); // 2.42424242 (seconds)

要获取格式化输出,请使用 'meter' 方法

Chrono::start();

// Compute stuff

echo Chrono::meter(); // Time: 0.42 seconds (4242 ms)

您可以在需要时以各种格式访问已过时间

echo Chrono::elapsed(); // 0.42424242
echo Chrono::seconds(); // 0.43
echo Chrono::ms(); // 4243

您可以暂停和恢复计时器

Chrono::start();

sleep(1);

Chrono::pause();

sleep(3); // Will be ignored

Chrono::resume();

sleep(1);

print Chrono::meter(); // Time: 2 seconds (2001 ms)

如果您正在运行许多基准测试,给它们添加描述可能是个好主意

Chrono::describe('Query with joints');
Chrono::start();

// Run the query

print Chrono::meter();

输出

Query with joints | 1.43 seconds (1424 ms)

警告:如果您更喜欢使用简写基准测试方法,请确保在基准测试中调用描述方法

Chrono::benchmark(function () {
    Chrono::describe('Task');

    // Do your thing
});

有关更详细的概述,请参阅 测试套件

致谢

此实现受到 David Walsh 的计时器类的启发。

贡献

欢迎改进!请随意提交拉取请求。

许可证

MIT

版权所有 © 2019 Angle Software