DavidBehler / timer
一个PHP计时器。您可以(重新)启动、暂停和停止。还可以获取经过的时间。您可以通过标签同时启动和控制多个计时器。
v2.0.0
2019-03-11 20:36 UTC
Requires
- php: >=7.1
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'));