[phpunit/php-timer]一个用于代码执行时间的计时器

2022-04-02 奥古斯宏

有时候我们需要测算一段代码的执行时间,我们自然可以自己存一个变量,计算执行前和执行后的时间戳,但是不免有些粗糙。

有这样一个库,可以很方便地实现这个效果:

基本使用

require __DIR__ . '/vendor/autoload.php';

use SebastianBergmann\Timer\Timer;

$timer = new Timer;

$timer->start();

foreach (\range(0, 100000) as $i) {
    // ...
}

$duration = $timer->stop();

var_dump(get_class($duration));
var_dump($duration->asString());
var_dump($duration->asSeconds());
var_dump($duration->asMilliseconds());
var_dump($duration->asMicroseconds());
var_dump($duration->asNanoseconds());

输入如下:

string(32) "SebastianBergmann\Timer\Duration"
string(9) "00:00.002"
float(0.002851062)
float(2.851062)
float(2851.062)
int(2851062)

也可统计内存

可以通过这样的方式来统计内存的使用:

require __DIR__ . '/vendor/autoload.php';

use SebastianBergmann\Timer\ResourceUsageFormatter;
use SebastianBergmann\Timer\Timer;

$timer = new Timer;
$timer->start();

foreach (\range(0, 100000) as $i) {
    // ...
}

print (new ResourceUsageFormatter)->resourceUsage($timer->stop());

最终输入如下:

Time: 00:00.002, Memory: 6.00 MB


最近浏览
IP用户:115.239.*.*
1 天前 Chrome Windows 10
IP用户:14.181.*.*
1 天前 Chrome Windows 10
IP用户:51.68.*.*
1 天前 aHrefs Bot
IP用户:116.204.*.*
2 天前 Chrome Mac 10.15
IP用户:185.191.*.*
3 天前 Semrush Bot
IP用户:146.148.*.*
3 天前 Generic Bot
IP用户:116.179.*.*
3 天前 Baidu Spider
IP用户:124.156.*.*
5 天前 Mobile Safari iOS 13.2
IP用户:74.7.*.*
5 天前 GPTBot
IP用户:198.244.*.*
6 天前 aHrefs Bot
IP用户:18.97.*.*
6 天前 ccBot crawler
IP用户:116.179.*.*
9 天前 Baidu Spider
累计浏览次数:2041
评论
点击登录