sandermuller/stopwatch

Stopwatch to measure execution times (profile code) for Laravel and PHP projects

v0.3.1 2025-09-15 17:24 UTC

This package is auto-updated.

Last update: 2025-09-15 17:25:12 UTC


README

Easily profile of parts of your application/code and measure the performance to expose the bottlenecks

Installation

You can install the package via composer:

composer require sandermuller/stopwatch

Usage

Start the stopwatch

stopwatch()->start();

Add a lap/checkpoint

stopwatch()->start();

stopwatch()->checkpoint('First checkpoint');
// Or
stopwatch()->lap('Second checkpoint');

Send the timing directly to your log file

stopwatch()->start();

stopwatch()->log('Second checkpoint');

Display the total run duration

stopwatch()->start();

// Do something

echo stopwatch()->toString();
// Echoes something like: 116ms

Render as HTML

Render a neat HTML output showing the total execution time, each checkpoint and the time between each checkpoint.

The checkpoints that took up most of the time will be highlighted.

stopwatch()->start();

// Do something
stopwatch()->checkpoint('First checkpoint');

// Do something more
stopwatch()->checkpoint('Second checkpoint');

// Render the output
{{ stopwatch()->render() }}

rendered-stopwatch.png

Manually stop the stopwatch

You can manually stop the stopwatch, but it will also stop automatically when the Stopwatch output is used (e.g. when you echo the Stopwatch object or call ->totalRunDuration()).

stopwatch()->start();

// Do something
stopwatch()->checkpoint('First checkpoint');

// Stop the stopwatch
stopwatch()->stop();

// Do something else you don't want to measure

// Finally render the output
{{ stopwatch()->render() }}