vntrungld/laravel-ticktock

v1.0.1 2024-09-27 07:40 UTC

This package is auto-updated.

Last update: 2024-09-27 07:42:26 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

Installation

You can install the package via composer:

composer require vntrungld/laravel-ticktock

Usage

Use tts to start a timer for a block of code

Use tte to end a timer for a block of code

Use tt to capture the time of a block of code

Eg:

tts('test 1')
    doSomething();tt('do something');
    doSomethingElse();tt('do something else');
tte()

Or you can use facade Ticktock to measure the time of your code.

Ticktock::start('test 1')
    doSomething(); Ticktock::capture('do something');
    doSomethingElse(); Ticktock::capture('do something else');
Ticktock::end()

After that you can dump, dd or log this by using:

ttd(); // dump
ttdd(); // dd
ttl(); // log
ttr(); // string

Ticktock::dump(); // dump
Ticktock::dd(); // dd
Ticktock::log(); // log
Ticktock::render(); // string

The output will be

test 1 -- 30ms
├── do something -- 10ms
└── do something else -- 20ms

You can nest many levels as you want.

tts('total');
    usleep(10 * 1000);tt('child1');
    usleep(20 * 1000);tt('child2');
    tts('child3');
        usleep(5 * 1000);tt('child3.1');
        usleep(7*1000);tt('child3.2');
        tts('child3.3');
            usleep(3 * 1000);tt('child3.3.1');
            usleep(4 * 1000);tt('child3.3.2');
        tte();
        usleep(18 * 1000);tt('child3.4');
        tts('child3.5');
            usleep(8 * 1000);tt('child3.5.1');
            usleep(9 * 1000);tt('child3.5.2');
        tte();
    tte();
    tts('child4');
        usleep(10 * 1000);tt('child4.1');
        usleep(15 * 1000);tt('child4.2');
        usleep(20 * 1000);tt('child4.3');
    tte();
tte();

The output will be

total -- 132ms
├── child1 -- 10ms
├── child2 -- 20ms
├── child3 -- 56ms
│   ├── child3.1 -- 5ms
│   ├── child3.2 -- 7ms
│   ├── child3.3 -- 8ms
│   │   ├── child3.3.1 -- 3ms
│   │   └── child3.3.2 -- 4ms
│   ├── child3.4 -- 18ms
│   └── child3.5 -- 18ms
│       ├── child3.5.1 -- 8ms
│       └── child3.5.2 -- 9ms
└── child4 -- 46ms
    ├── child4.1 -- 10ms
    ├── child4.2 -- 15ms
    └── child4.3 -- 20ms

Testing

I have not written any tests yet. I will write them soon.

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

License

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