https://github.com/nsa-yoda/phpbenchtime
A lightweight benchmark timer for PHP
https://github.com/nsa-yoda/phpbenchtime
lap php timer
Last synced: 27 days ago
JSON representation
A lightweight benchmark timer for PHP
- Host: GitHub
- URL: https://github.com/nsa-yoda/phpbenchtime
- Owner: nsa-yoda
- Created: 2012-11-17T23:26:49.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2022-12-03T22:55:14.000Z (over 2 years ago)
- Last Synced: 2025-04-13T17:45:56.636Z (about 1 month ago)
- Topics: lap, php, timer
- Language: PHP
- Homepage:
- Size: 189 KB
- Stars: 25
- Watchers: 2
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
PHPBenchTime v2.1.0
===================[](https://packagist.org/packages/nsa-yoda/phpbenchtime)
[](https://packagist.org/packages/nsa-yoda/phpbenchtime)
[](https://packagist.org/packages/nsa-yoda/phpbenchtime)
[](https://packagist.org/packages/nsa-yoda/phpbenchtime)
[](https://travis-ci.org/nsa-yoda/PHPBenchTime)A light benchmark timer class for PHP. PHPBenchTime is quite simple to use and is loaded with functionality - including detailed summary data, easily readable source, a robust lap system and pause/unpause functionality.
Also, please check out my Python version of this package: [PyBenchTime Python Package](https://github.com/nsa-yoda/PyBenchTime)
On Packagist
============
https://packagist.org/packages/nsa-yoda/phpbenchtimeMethods
=======
```
public start()
public end()
public reset()
public lap()
public summary()
public pause()
public unPause()
private endLap()
private getCurrentTime()
```Properties
==========
```
private startTime
private endTime
private pauseTime
private laps
private lapCount
```Usage
=====You should see the Usage.php file in source for the best how to documentation. However, here's an overview:
Load and initiate the PHPBenchTime Timer:
```
require('PHPBenchTime.php');
use PHPBenchTime\Timer;
$T = new Timer;
```That was easy! Now lets start a new timer:
```
$T->start();
```Then lets just sleep for 3 seconds:
```
sleep(3);
```Now, lets end the timer, and put results in $time:
```
$time = $T->end();
```When we end a timer, we receive an array back, containing the start time,
end time and difference between start and end times:
```
Array (
[running] => false
[start] => 1406146951.9998
[end] => 1406146952.0638
[total] => 0.0019998550415039
[paused] => 0
[laps] => Array (
[0] => Array (
[name] => start
[start] => 1406146951.9998
[end] => 1406146952.0018
[total] => 0.0019998550415039
)
)
)
```Advanced Usage : Laps
=====================PHPBenchTime also allows you to set laps between code execution, which allows
you to determine what part of your code is causing a bottleneck.Let's sleep for a couple of seconds between laps:
```
sleep(1);
$T->lap();
sleep(2);
$T->lap();
```Now, let's end the timer:
```
$time = $T->end();
```Let's see the results:
```
Array (
[running] => false
[start] => 1406146951.9998
[end] => 1406146952.0638
[total] => 0.063999891281128
[paused] => 0.041000127792358
[laps] => Array (
[0] => Array (
[name] => start
[start] => 1406146951.9998
[end] => 1406146952.0018
[total] => 0.0019998550415039
)
[1] => Array (
[name] => 1
[start] => 1406146952.0018
[end] => 1406146952.0028
[total] => 0.0010001659393311
)
[2] => Array (
[name] => 2
[start] => 1406146952.0028
[end] => 1406146952.0128
[total] => 0.0099999904632568
)
)
)
```Advanced Usage
==============
PHPBenchTime allows you to do named laps, as well as to pause and unpause the timer (say you want to make a network
call or a call out to the database, but don't want to include that time in your benchmark - pause and then unpause after
you receive the network/database data).HISTORY
=======* v1.0.0: Static Birth!
* v1.1.0: Static Namespaces!
* v1.2.0: Non-Static Namespaces!
* v1.3.0: Laps! Laps! Laps!
* v2.0.0: Complete rewrite, adds pause, unpause, central lap system and more detailed summary
* v2.1.0: Performance enhancements, unit tests, etc