amnuts / timer
一个简单易用的计时器类
1.0.0
2020-09-19 17:47 UTC
Requires
- php: >=7.3.0
Requires (Dev)
- phpunit/phpunit: ^9.3
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