一个PHP计时器。您可以(重新)启动、暂停和停止。还可以获取经过的时间。您可以通过标签同时启动和控制多个计时器。

v2.0.0 2019-03-11 20:36 UTC

This package is auto-updated.

Last update: 2024-09-12 09:29:27 UTC


README

一个PHP计时器。您可以(重新)启动、暂停和停止。还可以获取经过的时间。使用TimerCollection,您可以同时运行多个计时器。

当前支持的时间测量选项

  • Timer::DATETIME_TYPE: 使用PHP的DateTime类(这是默认选项)
  • Timer::MICROTIME_TYPE: 使用PHP的microtime函数

安装

使用Composer

composer require davidbehler/timer

不使用Composer

您还可以从[Github](https://github.com/davidbehler/timer)下载它,但未提供自动加载器,因此您需要使用自己的PSR-4兼容自动加载器来注册它。

计时器使用

创建一个具有自动启动的新计时器

use DavidBehler\Timer\Timer;

$timer = new Timer;

创建一个具有自动启动和microtime选项的新计时器

$timer = new Timer(true, Timer::MICROTIME_TYPE);

创建一个不自动启动的新计时器

$timer = new Timer(false);

手动启动计时器

$timer = new Timer(false);

$timer->start();

暂停计时器

$timer = new Timer;

$timer->pause();

停止计时器

$timer = new Timer;

$timer->stop();

取消暂停已暂停的计时器

$timer = new Timer;

$timer->pause();
$timer->start();

重新启动计时器

$timer = new Timer;

$timer->restart();

获取运行中的计时器的微秒数持续时间(使用当前时间)

$timer = new Timer;

usleep(1000);

$timer->getDuration(); // returns 0.001 (in a perfect world, but of course timings aren't this perfect)

获取运行中的计时器的秒数持续时间,小数点后有4位数字(使用当前时间)

$timer = new Timer;

usleep(555);

$timer->getDuration(true, 5); // returns 0.00055 (in a perfect world, but of course timings aren't this perfect)

获取已暂停的计时器的秒数持续时间

$timer = new Timer;

usleep(500);

$timer->pause();

usleep(500);

$timer->getDuration(); // returns 0.0005 (in a perfect world, but of course timings aren't this perfect)

获取已停止的计时器的秒数持续时间

$timer = new Timer;

usleep(500);

$timer->stop();

usleep(500);

$timer->getDuration(); // returns 0.0005 (in a perfect world, but of course timings aren't this perfect)

获取多次暂停/启动的计时器的秒数持续时间

$timer = new Timer;

sleep(1);

$timer->pause();

usleep(500);

$timer->start();

sleep(2);

$timer->pause();

$timer->getDuration(); // returns 3.005 (in a perfect world, but of course timings aren't this perfect)

获取报告

$timer->getReport();

TimerCollection使用

创建一个新的TimerCollection,并使用microtime选项。此集合中的所有计时器都将使用集合初始化时设置的测量选项。

use DavidBehler\Timer\TimerCollection;

$timerCollection = new TimerCollection(Timer::MICROTIME_TYPE);

启动时间并获取其秒数持续时间

$timerCollection->start('timer 1');

$timerCollection->getDuration('timer 1');

同时启动多个计时器并获取它们的持续时间

$timerCollection->start('timer 1');
$timerCollection->start('timer 2');

$timerCollection->getDuration('timer 1');
$timerCollection->getDuration('timer 2');
// or
$timerCollection->start(array('timer 1', 'timer 2'));
$timerCollcetion->getDurations(array('timer 1', 'timer 2')); // returns an array of durations with timer labels as indeces

您也可以同时停止、暂停和重新启动多个计时器

$timerCollection->stop(array('timer 1', 'timer 2'));
$timerCollection->pause(array('timer 1', 'timer 2'));
$timerCollection->restart(array('timer 1', 'timer 2'));

获取所有计时器的列表

$timerCollection->getTimers(); // returns an array with all setup timers
$timerCollection->getTimers(true); // returns an array with all the setup timers' labels

获取单个计时器的报告

$timerCollection->getReport('timer 4');

获取多个计时器的报告

$timerCollection->getReports(array('timer 5', 'timer 6'));