Skip to content

phpunit/php-timer

Latest Stable VersionCI Statuscodecov

Utility class for timing things, factored out of PHPUnit into a stand-alone component.

Installation

You can add this library as a local, per-project dependency to your project using Composer:

composer require phpunit/php-timer

If you only need this library during development, for instance to run your project's test suite, then you should add it as a development-time dependency:

composer require --dev phpunit/php-timer

Usage

Basic Timing

require__DIR__ . '/vendor/autoload.php';
useSebastianBergmann\Timer\Timer;
$timer = newTimer;
$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());

The code above yields the output below:

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

Resource Consumption

Explicit duration

require__DIR__ . '/vendor/autoload.php';
useSebastianBergmann\Timer\ResourceUsageFormatter;
useSebastianBergmann\Timer\Timer;
$timer = newTimer;
$timer->start();
foreach (\range(0, 100000) as$i) {
// ...
}
print (newResourceUsageFormatter)->resourceUsage($timer->stop());

The code above yields the output below:

Time: 00:00.002, Memory: 6.00 MB

Duration since PHP Startup (using unreliable $_SERVER['REQUEST_TIME_FLOAT'])

require__DIR__ . '/vendor/autoload.php';
useSebastianBergmann\Timer\ResourceUsageFormatter;
foreach (\range(0, 100000) as$i) {
// ...
}
print (newResourceUsageFormatter)->resourceUsageSinceStartOfRequest();

The code above yields the output below:

Time: 00:00.002, Memory: 6.00 MB

About

Utility class for timing

Resources

Code of conduct

Contributing

Security policy

Stars

7.7k stars

Watchers

19 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages