Fayland 林

NAME

Catalyst::Plugin::tv_interval - call tv_interval of Time::HiRes to ease profiling.

SYNOPSIS

    use Catalyst qw/-Debug tv_interval/;

    # in controller later
    sub somesub : Local {
        my ($self, $c) = @_;
        
        $c->tv_mark_point;
        # CODE { do something }
        $c->tv_mark_point; # print debug log how long this CODE takes
        
        $c->tv_clear_marked_point; # now it looks like we never call ->tv_mark_point before
        $c->tv_mark_point;
        # CODE { do something else }
        $c->tv_mark_point;
    }

DESCRIPTION

This module uses the functions of tv_interval and [gettimeofday] in Time::HiRes. and print debug log like as follows:

    [debug] tv_interval: MyApp::Controller::Test from line 12 to 16 takes 0.013818
    [debug] tv_interval: MyApp::Controller::Test from line 16 to 22 takes 1.000408

INTERFACE

tv_mark_point

if this is no 'ponit' before, mark a point and remember the file name, line and the [gettimeofday]. or else, compare the 'point' now with the old 'point' and print debug log.

tv_clear_marked_point

clear the old 'point'

DEPENDENCIES & SEE ALSO

Catalyst - The Elegant MVC Web Application Framework
Time::HiRes - High resolution alarm, sleep, gettimeofday, interval timers
Catalyst::Plugin::Timer (in Catalyst trunk) - something the same, but it is NOT working when I develop this module.

AUTHOR

Fayland, <fayland at gmail.com>

COPYRIGHT & LICENSE

Copyright 2007 Fayland and Zorpia Ltd. Company http://www.zorpia.com all rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.