Cache-Profile
view release on metacpan or search on metacpan
t/profile.t view on Meta::CPAN
#!/usr/bin/perl
use strict;
use warnings;
use Time::HiRes 1.84 qw(time clock);
use Try::Tiny;
use Test::More;
use List::Util qw(shuffle);
use Test::Needs qw(
Cache::Ref::FIFO
Cache::Ref::LRU
Cache::Ref::CART
Cache::Ref::CLOCK
);
use ok 'Cache::Profile';
use ok 'Cache::Profile::CorrelateMissTiming';
use ok 'Cache::Profile::Compare';
# this uses a weighted key set
my @keys = shuffle( ( map { 1 .. $_ } 1 .. 25 ), 1 .. 200 );
my %seen;
my $sigma = grep { !$seen{$_}++ } @keys;
my $size = 20;
my $p_fifo = Cache::Profile->new(
cache => Cache::Ref::FIFO->new( size => $size ),
);
$p_fifo->set( foo => "bar" );
is( $p_fifo->get("foo"), "bar", "simple set/get" );
is( $p_fifo->hit_count, 1, "hit count" );
is( $p_fifo->miss_count, 0, "miss count" );
$p_fifo->reset;
is( $p_fifo->get("bar"), undef, "cache miss" );
is( $p_fifo->hit_count, 0, "hit count" );
is( $p_fifo->miss_count, 1, "miss count" );
$p_fifo->reset;
my $p_lru = Cache::Profile::CorrelateMissTiming->new(
cache => Cache::Ref::LRU->new( size => $size ),
);
my $p_cart = Cache::Profile->new(
cache => Cache::Ref::CART->new( size => $size ),
);
my @more = ( Cache::Ref::CLOCK->new( size => $size ) );
try {
require CHI;
#push @more, CHI->new( driver => 'Memory', datastore => {}, max_size => $size );
push @more, CHI->new( driver => 'Memory', datastore => {} ); # max size seems broken
};
try {
require Cache::FastMmap;
push @more, Cache::FastMmap->new(cache_size => '1k');
};
( run in 0.484 second using v1.01-cache-2.11-cpan-39bf76dae61 )