amnuts/timer

一个简单易用的计时器类

1.0.0 2020-09-19 17:47 UTC

This package is auto-updated.

Last update: 2024-08-28 20:00:30 UTC


README

这是一个极其简单的微秒级计时器,您可以在PHP应用程序中使用它。

当您实例化类时,它会启动计时器,然后您可以在此过程中使用mark标记时间点,并使用stop停止计时器。

真的,这还能再简单吗?

使用示例

<?php

use Amnuts\Datetime\Timer;

$timer = new Timer();
sleep(5); // do something here
echo $timer->stop();

这将给出以下结果:

Started 2020-09-19 16:06:52
Ended 2020-09-19 16:06:57, total time 0d 0h 0m 5.000200s

简单,但有点无聊。然而,如果您有一个想要计时的函数,它有多个部分,那么在整个函数中放置标记并查看每个部分之间的差异将非常有用。

例如

<?php

use Amnuts\Datetime\Timer;

$timer = new Timer();
sleep(1);
$timer->mark();
sleep(2);
$timer->mark();
sleep(3);
$timer->stop();

echo $timer;

将给出以下结果:

Started 2020-09-19 16:11:59
	Δ 0d 0h 0m 1.000200s
	Δ 0d 0h 0m 2.000700s
Ended 2020-09-19 16:12:05, total time 0d 0h 0m 6.001800s

mark方法允许我们查看每次标记之间的差值。但通过为标记提供消息,它可以更有帮助。

<?php

use Amnuts\Datetime\Timer;

$timer = new Timer();
sleep(1);
$timer->mark('Starting something slow');
sleep(2);
$timer->mark('Ended that and going onto something even slower!');
sleep(3);
$timer->stop();

echo $timer;

这将给出以下结果:

Started 2020-09-19 16:14:51
	Δ 0d 0h 0m 1.000700s (Starting something slow)
	Δ 0d 0h 0m 2.000700s (Ended that and going onto something even slower!)
Ended 2020-09-19 16:14:57, total time 0d 0h 0m 6.001900s

说实话,您甚至不需要使用stop来输出当前差值。您可以这样做:

<?php

use Amnuts\Datetime\Timer;

$timer = new Timer();
sleep(1);
echo $timer;
sleep(2);
echo $timer;

这将产生如下输出:

Started 2020-09-19 16:40:47, current delta 0d 0h 0m 1.000100s
Started 2020-09-19 16:40:47, current delta 0d 0h 0m 3.000700s

许可证

MIT: http://acollington.mit-license.org/