Guard-Stats
view release on metacpan or search on metacpan
Guard-Stats
Guard::Stats - Guard object generator with utilisation meters.
BASIC USAGE
Suppose we have a long-running application making heavy use of closures,
and need to monitor the lifetimes of those. So...
# in initial section
use Guard::Stats;
my $stat = Guard::Stats->new;
# when running
my $guard = $stat->guard;
my $callback = sub {
$guard->end("taken route 1");
# now do useful stuff
};
# ... do whatever I need and call $callback eventually
# in diagnostic procedures started via external event
my $data = $stat->get_stat;
warn "$data->{running} instances still running";
METER TABLE
Statistics show numbers of guards for which end()/DESTROY() were called
in various combinations.
DESTROY: * 0 1
end:* total+ alive dead
end:0 ? running broken+
end:1 done+ zombie complete+
A "+" marks values directly measured by Guard::Stats. They all are monotonous.
Other counterss are derived from these.
TIME AND LEVELS
The on_level( [-] $n, CODEFER ) method allows to perform certain actions
upon guard count changes. (-$n means "count decreased to $n").
With a helper class provided, also life times of guards can be measured.
See perldoc for more.
INSTALLATION
To install this module, run the following commands:
perl Makefile.PL
make
make test
make install
SUPPORT AND DOCUMENTATION
After installing, you can find documentation for this module with the
perldoc command.
perldoc Guard::Stats
You can also look for information at:
RT, CPAN's request tracker (report bugs here)
http://rt.cpan.org/NoAuth/Bugs.html?Dist=Guard-Stats
AnnoCPAN, Annotated CPAN documentation
http://annocpan.org/dist/Guard-Stats
CPAN Ratings
http://cpanratings.perl.org/d/Guard-Stats
Search CPAN
http://search.cpan.org/dist/Guard-Stats/
LICENSE AND COPYRIGHT
Copyright (C) 2013 Konstantin S. Uvarin
This program is free software; you can redistribute it and/or modify it
under the terms of either: the GNU General Public License as published
by the Free Software Foundation; or the Artistic License.
See http://dev.perl.org/licenses/ for more information.
( run in 0.326 second using v1.01-cache-2.11-cpan-d7a12ab2c7f )