Skip to content
Profiler with adapter for Tracy
Branch: master
Clone or download
Latest commit 9121858 Nov 30, 2016
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
demo Changed default configuration and simplified demos Oct 3, 2016
src/Profiler
tests/Profiler Added array_replace_recursive to __construct Oct 3, 2016
.gitattributes Reformatted Sep 21, 2016
.gitignore Added test for Profiler Sep 19, 2016
LICENSE Initial commit Sep 19, 2016
README.md Added primaryValue config option Oct 3, 2016
VERSIONING.md
composer.json Added keywords Nov 30, 2016
dockerfile
makefile Merge branch 'develop' into feature/lumen_demo Sep 26, 2016
phpunit.xml Added test for Profiler Sep 19, 2016

README.md

Profiler with adapter for Tracy

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.

Adapter for Tracy

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.

You can’t perform that action at this time.