drealecs/time-benchmark

用于计时和基准测试的库

v1.1.1 2023-10-27 18:25 UTC

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* 方法内完成的。