drealecs / time-benchmark
用于计时和基准测试的库
v1.1.1
2023-10-27 18:25 UTC
Requires
- php: >=8.1
Requires (Dev)
- phpunit/phpunit: ^10.4
This package is auto-updated.
Last update: 2024-09-19 09:20:14 UTC
README
用于计时和基准测试的库
秒表
可以使用静态方法创建秒表实例
$stopwatch = Stopwatch::create();
或
$stopwatch = Stopwatch::createStarted();
正如其名,createStarted()
方法也是开始秒表。可以使用以下方式启动未开始的秒表:
$stopwatch->start();
当秒表开始时,可以使用以下方式停止:
$stopwatch->stop();
在捕获时间时,使用 hrtime()
以获得最佳效率。在 32 位运行时,由于浮点 PHP 精度限制,可能存在一些小数丢失,但仅在微秒小数级别。方法 start()
和 stop()
很快,差异计算是在调用方法时进行的
$seconds = $stopwatch->getElapsedSeconds(); $milliseconds = $stopwatch->getElapsedMilliseconds(); $microseconds = $stopwatch->getElapsedMicroseconds();
还有三个可以使用的秒表状态方法
$stopwatch->wasStarted(); $stopwatch->isRunning(); $stopwatch->wasStopped();
另一个功能也与步骤(或圈数)相关。当秒表正在运行时,可以使用以下方式标记步骤,而不会影响秒表状态:
$stopwatch->step($stepName);
$stepName 是步骤的名称,并且不得用于同一秒表的重复使用。
可以通过以下方式检索步骤的数量:
$stopwatch->getStepsNumber();
有三种方法可以检索从开始到每个步骤的时间差。结果是按步骤名称索引的数组。
$seconds = $stopwatch->getElapsedStepsSeconds(); $milliseconds = $stopwatch->getElapsedStepsMilliseconds(); $microseconds = $stopwatch->getElapsedStepsMicroseconds();
还支持暂停秒表。执行此操作的方法是
$stopwatch->pause(); $stopwatch->resume();
暂停和恢复尽可能快,计算是在 getElapsed*
方法内完成的。