Laravel 12 – 13
PHP 8.3+
The project is in a healthy, maintained state
Lightweight profiler for PHP and Laravel. Add checkpoints, measure closures, track queries and memory, and surface results as HTML, Server-Timing headers, log entries, or Debugbar timelines.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Development

fakerphp/faker
^1.24
^2.0||^3.0
laravel/pao
^1.0
phpstan/extension-installer
^1.4.3
phpstan/phpstan-deprecation-rules
^2.0.3
phpstan/phpstan-phpunit
^2.0
phpstan/phpstan-strict-rules
^2.0.6
phpunit/phpunit
^11.0||^12.0
rector/type-perfect
^2.1
sandermuller/boost-skills
^2.33.0
spaze/phpstan-disallowed-calls
^4.6
stolt/lean-package-validator
^5.7.1 || ^6.0.0
symplify/phpstan-extensions
^12.0.1
tomasvotruba/cognitive-complexity
^1.0
tomasvotruba/type-coverage
>=2.2.0 <2.2.2

Runtime

nesbot/carbon
^2|^3.10.3
symfony/var-dumper
^7.3.3|^8.0
 Project Readme

Stopwatch for PHP & Laravel

Latest Version on Packagist GitHub Tests Action Status GitHub PHPStan Action Status Total Downloads License Laravel Compatibility

A lightweight profiler for PHP and Laravel. Add checkpoints, measure closures, track queries, memory and outbound HTTP, and see where the time goes. Use it when a request, command or job feels slow and an APM is more than you need. It runs in production, in tests and in CI.

PHP 8.3+ · Laravel 12.x / 13.x

Installation

composer require sandermuller/stopwatch
php artisan vendor:publish --tag=stopwatch-config   # optional

Quick start

stopwatch()->withQueryTracking()->start();

$users  = User::all();
stopwatch()->checkpoint('Load users');

$orders = Order::where('status', 'pending')->get();
stopwatch()->checkpoint('Load orders');

stopwatch()->toLog('Profile:');
// Profile:
//   [3ms / 3ms]   Load users  (queries=1)
//   [12ms / 15ms] Load orders (queries=1)
//   Total: 15ms

checkpoint() starts the stopwatch on its own, so start() is only needed to reset an earlier run.

Render it as a self-contained HTML card instead:

@stopwatch

The rendered card

Documentation

Published at https://sandermuller.github.io/Stopwatch/.

The sources are in docs/.

Testing

composer test

Changelog

CHANGELOG lists the recent changes.

Contributing

CONTRIBUTING covers local setup and the pull-request process.

Security vulnerabilities

Report a vulnerability through the security policy rather than a public issue.

Credits

License

The MIT License (MIT). Please see the License File for more information.