2017 © Pedro Peláez
 

library stopwatch

PHP utility library for Stopwatch. Useful for optimization and other purpose.

image

phpreboot/stopwatch

PHP utility library for Stopwatch. Useful for optimization and other purpose.

  • Saturday, June 11, 2016
  • by phpreboot
  • Repository
  • 0 Watchers
  • 3 Stars
  • 204 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 2 Forks
  • 0 Open issues
  • 6 Versions
  • 5 % Grown

The README.md

phpreboot/stopwatch

Build Status HHVM Status Code Climate Test Coverage Software License Latest Version, (*1)

SensioLabsInsight, (*2)

Purpose

While optimizations, we need to check time taken by different operations. This soon becomes ugly, if we put many microtime code blocks., (*3)

Purpose of StopWatch is to provide neat way of recording time taken by different blocks., (*4)

Supported versions

Above build is tested code on PHP version 5.3, 5.4, 5.5, 5.6, 7.0 and HHVM. Check .travis.yml for details., (*5)

Examples

Examples are given in example folder. To quick view, below are few examples:, (*6)

Simple stopwatch (file example/simplewatch.php)

Following example show use of StopWatch in simplest form., (*7)

<?php

/*
 * This example shows simple use of Stopwatch. For simple use, we need just four steps:
 *   - Create instance of StopWatch,
 *   - Call `start()` method to start the timer,
 *   - Call `stop()` method to stop the watch, and
 *   - Call `getTime()` method to get the time between start and stop.
 */

// Load Composer auto loader
require_once "../vendor/autoload.php";

use Phpreboot\Stopwatch\StopWatch;

// Create an instance of StopWatch
$stopWatch = new StopWatch();

// Start the watch to start timer,
$stopWatch->start();

$iteration = 0;

for ($i = 0; $i < 10000; $i++) {
    for ($j = 0; $j < 10000; $j++) {
        $iteration++;
    }
}

// Stop the watch.
$stopWatch->stop();

// By default, it will return time in seconds
$time = $stopWatch->getTime();

printf("Time taken for %d iterations was %f seconds.\n", $iteration, $time);

Pause demo (file example/pausedemo.php)

This example shows measuring time in multiple intervals. We simply pause watch to stop timer and start it again later. This step can be repeated multiple times., (*8)

<?php

/*
 * The example shows how to pause the timer for measuring time at different stages.
 * Once watch is started, we can call `pause` method to pause the watch.
 * If watch is paused, we can start it again to start timer. In that case, time will be added to timer.
 */

// Load Composer auto loader
require_once "../vendor/autoload.php";

use Phpreboot\Stopwatch\StopWatch;

// Create an instance of StopWatch
$stopWatch = new StopWatch();

$innerIterator = 0;

for ($i = 1; $i <= 10; $i++) {
    printf("Iteration %d starting.\n", $i);

    $stopWatch->start();
    for ($j = 0; $j < 1000; $j++) {
        $innerIterator++;
    }
    $stopWatch->pause();

    printf("Iteration %d watch stopped, not other task is starting..\n", $i);

    for ($k = 0; $k < 1000; $k++) {
        $timeWaster = $k;
    }
}

printf("Time taken by first loop (\$j), for %d iterations was: %f seconds.\n", $innerIterator, $stopWatch->getTime());

Multi demo (file example/multiDemo.php)

Measuring time in multiple intervals is useful but there are times when we need multiple stopwatches, independent of each others. Following example shows how can we have multiple stopwatches., (*9)

<?php

/*
 * This example shows using multiple stop watches in the same program.
 * If we want to use multiple watches, we must provide unique name all of them.
 * Steps involved are:
 *   - Add watches by any of following methods
 *     - Call `addWatch` multiple times, with name of watch as parameter, or
 *     - Call `addWatches` and pass an array of name of watches as parameter.
 *   - Further operation is same as in `simplewatch` and `pauseDemo` example. However this time, we need to pass
 *     watch name to all the methods.
 */

// Load Composer auto loader
require_once "../vendor/autoload.php";
use Phpreboot\Stopwatch\StopWatch;

// Create an instance of StopWatch
$stopWatch = new StopWatch();

// Initialize the watches.
$stopWatch->addWatches(["a", "b", "c"]);
// We could also use
// $stopWatch->addWatch("a");
// $stopWatch->addWatch("b");
// $stopWatch->addWatch("c");

$operatorA = 0;
$operatorB = 0;
$operatorC = 0;

for ($i = 1; $i <= 10; $i++) {
    // Following code block represent one operation, which needs to be measured.
    $stopWatch->start("a");
    for ($a = 0; $a < 10000; $a++) {
        $operatorA++;
    }
    $stopWatch->pause("a");

    // Following code block represent another operation, which needs to be measured separately.
    $stopWatch->start("b");
    for ($b = 0; $b < 10000; $b++) {
        $operatorB++;
    }
    $stopWatch->pause("b");

    // One more operation, independent of above operations needs to be measured.
    $stopWatch->start("c");
    for ($c = 0; $c < 10000; $c++) {
        $operatorC++;
    }
    $stopWatch->pause("c");
}

printf("Time taken in block 'a': %f seconds.\n", $stopWatch->getTime("a"));
printf("Time taken in block 'b': %f seconds.\n", $stopWatch->getTime("b"));
printf("Time taken in block 'c': %f seconds.\n", $stopWatch->getTime("c"));

The Versions

11/06 2016

dev-master

9999999-dev

PHP utility library for Stopwatch. Useful for optimization and other purpose.

  Sources   Download

MIT

The Development Requires

timer stopwatch

11/06 2016

v1.0.2

1.0.2.0

PHP utility library for Stopwatch. Useful for optimization and other purpose.

  Sources   Download

MIT

The Development Requires

timer stopwatch

26/09 2015

dev-development

dev-development

PHP utility library for Stopwatch. Useful for optimization and other purpose.

  Sources   Download

MIT

The Development Requires

timer stopwatch

26/09 2015

dev-feature_v1.0.1

dev-feature_v1.0.1

PHP utility library for Stopwatch. Useful for optimization and other purpose.

  Sources   Download

MIT

The Development Requires

timer stopwatch

26/09 2015

v1.0.1

1.0.1.0

PHP utility library for Stopwatch. Useful for optimization and other purpose.

  Sources   Download

MIT

The Development Requires

timer stopwatch

26/09 2015

v1.0.0

1.0.0.0

PHP utility library for Stopwatch. Useful for optimization and other purpose.

  Sources   Download

MIT

The Development Requires

timer stopwatch