phpunit/php-timer

Utility class for timing

Installs: 815 519 386

Dependents: 143

Suggesters: 4

Security: 0

Stars: 7 740

Watchers: 20

Forks: 64

Open Issues: 0

pkg:composer/phpunit/php-timer

8.0.0 2025-02-07 04:59 UTC

README

Latest Stable Version CI Status codecov

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'; 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());

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'; 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());

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'; use SebastianBergmann\Timer\ResourceUsageFormatter; foreach (\range(0, 100000) as $i) { // ... } print (new ResourceUsageFormatter)->resourceUsageSinceStartOfRequest();

The code above yields the output below:

Time: 00:00.002, Memory: 6.00 MB