NAME
    RHP::Timer - A high resolution timer abstraction

SYNOPSIS
    use RHP::Timer ();
    use My::Logger ();

    $logger = My::Logger->new;
    $timer  = RHP::Timer->new();

    # timing data from the point of the caller
    $timer->start('fizzbin');
    fizzbin(); # how fast is fizzbin?
    $logger->info(
        sprintf("Timing caller: %s %s %d, timer_name: %s, time: %s",
        @{$timer->checkpoint}));

    # or simpler
    $timer->start('foobin');
    foobin();
    $logger->info("pid $$ timer " . $timer->current .
        " took " . $timer->stop . " seconds");

    # what was the last timing block?
    $logger->info("Last timing block " . $timer->current .
        " took " . $timer->last_interval . " seconds");

DESCRIPTION
   RHP::Timer is a wrapper around Time::HiRes. I wrote it because I needed
   some simple abstractions for timing programs to determine bottlenecks in
   running programs.

   The goals of RHP::Timer is to be easy to use, accurate, and simple.

METHODS
   new()
        $timer = RHP::Timer->new();

       Constructor which takes no arguments and returns a timer object

   start()
        $timer->start('fizzbin');

       Starts the timer for 'fizzbin'

   stop()
        $interval = $timer->stop;

       Stops the last timer started, and returns the number of seconds
       between start and stop.

   current()
        $timer_name = $timer->current();
        # $timer_name is 'fizzbin' from previous pod

       Returns the name of the most recent timer started.

   checkpoint()
        [ caller(), $timer_name, $interval ] = $timer->checkpoint();

       Stops the current timer and returns an array reference containing
       caller() information, the name of the timer stopped, and the
       interval of the last timing run. Useful for passing to a logfile in
       sprintf or other format.

   last_interval()
        $last_interval = $timer->last_interval;

       Returns the last timing interval recorded by the timer object.

BUGS
   None known yet. If you find any, or want a feature, email the author.

SEE ALSO
   Time::HiRes(3)

AUTHOR
   Fred Moyer <[email protected]>

COPYRIGHT
   Copyright 2007 Red Hot Penguin Consulting LLC

LICENSE
   This library is free software; you can redistribute it and/or modify it
   under the same terms as Perl itself, either Perl version 5.8.6 or, at
   your option, any later version of Perl 5 you may have available.