Guard-Stats

 view release on metacpan or  search on metacpan

example/performance.pl  view on Meta::CPAN

#!/usr/bin/perl -w

# usage: $0 <want_time> <number_of_buckets=100> <number_of_iterations=10000>

use strict;
use YAML;

use Guard::Stats;

my $can_stat = eval {
	require Statistics::Descriptive::LogScale;
};

my $size = shift || 100;
my $iter = shift || 10**4;

my $stat = Guard::Stats->new(
	time_stat => $can_stat && "Statistics::Descriptive::LogScale" );

my @bucket;
for (1..$iter) {
	$bucket[ $size * rand() ] = $stat->guard;
	if (my $obj = $bucket[ $size * rand() ]) {
		$obj->is_done || $obj->end;
	};
	$bucket[ $size * rand() ] = undef;
};

print "Stats: ".Dump($stat->get_stat);
print "Times: ".Dump($stat->get_stat_time);



( run in 2.561 seconds using v1.01-cache-2.11-cpan-71847e10f99 )