Dancer::Timer - a timer for Dancer


Dancer documentation Contained in the Dancer distribution.

Index


Code Index:

NAME

Top

Dancer::Timer - a timer for Dancer

SYNOPSIS

Top

    use Dancer::Timer;

    my $timer = Dancer::Timer->new();
    my $time  = $timer->tick;
    print "[$time]: Doing something\n";

    # (time passes)
    $time = $timer->tick
    print "[$time]: Doing something else\n";

    # (time passes)
    $time = $timer->to_string;
    print "[$time]: Doing another thing\n";

DESCRIPTION

Top

Dancer::Timer provides Dancer with a timing object to clock operations. For example, you might want a logging that shows you when each operation happened (at what time) to determine how long each operation was in order to know where to focus on for possible bugs or perhaps unnecessary slowness.

Dancer uses Dancer::Timer in facilities that want to provide this for you. Any plugin author is more than welcome to use it as well.

ATTRIBUTES

Top

start_time

Retains the starting time of the timer. The default value is when the object is created. It fetches that using gettimeofday from Time::HiRes.

METHODS

Top

init

This method is called when ->new() is called. It initializes the start_time attribute.

tick

Creates a tick in the timer and returns the interval between the start_time and now.

to_string

Same as tick, just more expressive.

AUTHOR

Top

Alexis Sukrieh

LICENSE AND COPYRIGHT

Top


Dancer documentation Contained in the Dancer distribution.

package Dancer::Timer;

use strict;
use warnings;
use base 'Dancer::Object';
use Time::HiRes 'gettimeofday', 'tv_interval';

use Dancer::ModuleLoader;
Dancer::Timer->attributes('start_time');

sub init {
    my ($self) = @_;
    $self->start_time([gettimeofday()]);
}

sub tick {
    my ($self) = @_;
    my $now = [gettimeofday()];
    my $delay = tv_interval($self->start_time, $now);
    return sprintf('%0f', $delay);
}

sub to_string {
    my ($self) = @_;
    $self->tick;
}

1;

__END__