netpromotion / profiler
Profiler with adapter for Tracy
Installs: 76 614
Dependents: 3
Suggesters: 0
Security: 0
Stars: 31
Watchers: 5
Forks: 2
Open Issues: 1
Requires
- php: >=5.4
- petrknap/php-profiler: ^1.1
- petrknap/php-singleton: ^1.0
Requires (Dev)
- laravel/lumen-framework: ^5.0
- latte/latte: ^2.3
- netpromotion/tracy-psr-logger: ^1.1
- netpromotion/tracy-wrapper: ^1.0
- nette/application: ^2.3
- nette/bootstrap: ^2.3
- nette/di: *
- phpunit/phpunit: ^4.8
- psr/log: *
- tracy/tracy: *
Conflicts
- nette/di: <2.2 || >=3
- psr/log: <1.0 || >= 2
- tracy/tracy: <2.2 || >=3
This package is not auto-updated.
Last update: 2024-11-09 20:12:25 UTC
README
This repository contains lightweight, very quick and easy to use Profiler with adapter for Tracy.
Usage
If you wish to profile a block of code, simply encapsulate it between Profiler::start
and Profiler::finish
calls.
<?php // index.php if (/* Is debug mode enabled? */) { Profiler::enable(); } Profiler::start(); require(__DIR__ . "/required_file.php"); Profiler::finish();
<?php // required_file.php // If you wish to use default labels, call functions without parameters Profiler::start(/* sprintf("%s#%s", __FILE__, __LINE__) */); /* your code goes here */ Profiler::finish(/* sprintf("%s#%s", __FILE__, __LINE__) */); // If you wish to use static labels, place label as first parameter Profiler::start("static label"); /* your code goes here */ Profiler::finish("static label"); // If you wish to use dynamic labels, call functions like sprintf Profiler::start(/* sprintf( */ "line %s", __LINE__ /* ) */); /* your code goes here */ Profiler::finish(/* sprintf( */ "line %s", __LINE__ /* ) */); // If you wish to create more detailed profiles, start new profile inside another one Profiler::start("Profile 1"); /* your code goes here */ Profiler::start("Profile 1.1"); Profiler::start("Profile 1.1.1"); /* your code goes here */ Profiler::finish("Profile 1.1.1"); /* your code goes here */ Profiler::start("Profile 1.1.2"); /* your code goes here */ Profiler::finish("Profile 1.1.2"); /* your code goes here */ Profiler::finish("Profile 1.1"); Profiler::finish("Profile 1");
If you wish to know more about Profiler, please visit Profiler's README.md.
How to install
Run composer require netpromotion/profiler
in your project directory.
Nette
Add extension Netpromotion\Profiler\Extension\ProfilerNetteExtension
into your configuration, it is not necessary to call Profiler::enable
.
extensions: profiler: Netpromotion\Profiler\Extension\ProfilerNetteExtension
If you wish to profile before the container is ready, call Profiler::enable
manually.
Configuration
profiler: profile: createService: false # or true bar: primaryValue: effective # or absolute show: memoryUsageChart: true # or false shortProfiles: true # or false timeLines: true # or false
There is a live demo available - run make demo
and click here.
Lumen, pure PHP and everything else
Add panel Netpromotion\Profiler\Adapter\TracyBarAdapter
to your bar via Bar::addPanel
method manually or use netpromotion/tracy-wrapper.
tracy_wrap(function() { /* your code goes here */ }, [new TracyBarAdapter([ "primaryValue" => "effective", // or "absolute" "show" => [ "memoryUsageChart" => true, // or false "shortProfiles" => true, // or false "timeLines" => true // or false ] ])]);
There is a live demo available - run make demo
and click here.