angle / chrono
测量 PHP 代码执行时间最简单的方式。
v1.0.4
2020-12-15 21:32 UTC
Requires
- php: ^7.0|^8.0
Requires (Dev)
- phpunit/phpunit: ^8.0
- symfony/var-dumper: ^4.2
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