gamernetwork / yolk-profiler
Gamer Network's PHP profiling library
Installs: 8 320
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 10
Forks: 1
Open Issues: 1
Requires
- php: >=5.4.0
- gamernetwork/yolk-contracts: 1.*
Requires (Dev)
- phpunit/phpunit: 4.*
- sami/sami: 3.*
This package is not auto-updated.
Last update: 2025-04-22 04:58:10 UTC
README
Want to work for Gamer Network? We are hiring!
Yolk Profiler
A simple profiling library for benchmarking code execution speed, memory usage and database queries.
Requirements
This library requires only PHP 5.4 or later and the Yolk Contracts package (gamernetwork/yolk-contracts
).
Installation
It is installable and autoloadable via Composer as gamer-network/yolk-profiler
.
Alternatively, download a release or clone this repository, and add the \yolk\profiler
namespace to an autoloader.
License
Yolk Profiler is open-sourced software licensed under the MIT license.
Quick Start
use yolk\profiler\GenericProfiler; $profiler = new GenericProfiler(); $profiler->start('Op 1'); lengthyOperation1(); $profiler->stop('Op 1'); $profiler->start('Op 2'); lengthyOperation2(); $profiler->stop('Op 2'); // profile a query $profiler->start('Query1'); doDatabaseQuery($sql, $params); $profiler->stop('Query1'); $profiler->query($sql, $params, $profiler->getElapsed('Query1')); // add some additional info $profiler->meta('get', $_GET); $profiler->meta('post', $_POST); $profiler->stop(); // assign a configuration object to the profiler to be included in the report $profiler->config(Config $config); // get a report print_r( $profiler->getData() );
Timers
GenericProfiler
makes use of the GenericTimer
class, which may also be used independently
to record periods of time at microsecond resolution.
use yolk\profiler\GenericTimer; $t = new GenericTimer(); $t->start(); $t->isRunning(); // returns true $t->getElapsed(); // returns microseconds since last call to start() $t->stop(); $t->isRunning(); // returns false $t->getTotalElapsed(); // returns microseconds between all calls to start()/stop()
Debug Bar
An HTML debug bar is provided that can be rendered to a web page and provide a pretty representation of the Profiler's data.
The relevant HTML can be obtained by calling the getHTML()
method on the profiler
and can then be inserted into a template, send to the client, etc.
The debug bar source is self-contained and is designed to be placed just before the
closing </body>
tag.