#!/usr/bin/env perl use strict; use warnings; use lib '../lib'; use Log::Log4perl qw( :easy ); use Autocache qw( autocache ); Log::Log4perl->easy_init( $DEBUG ); use Devel::Size qw( total_size ); Autocache->initialise( filename => './lru.conf', logger => get_logger() ); autocache 'generate_data'; foreach my $i ( 1..2 ) { foreach my $n ( 1..10 ) { my $junk = generate_data( $n ); get_logger()->info( "n: $n - square: " . $junk->{square} ); } } #foreach my $n ( 30..40 ) #{ # my $junk = generate_data( $n ); # get_logger()->info( "n: $n - square: " . $junk->{square} ); #} my $strategy = Autocache->singleton->get_strategy( 'stat' ); my $stats = $strategy->statistics; get_logger()->info( "create count: " . $stats->{create} ); get_logger()->info( "hit count: " . $stats->{hit} ); get_logger()->info( "miss count: " . $stats->{miss} ); get_logger()->info( "total count: " . ( $stats->{hit} + $stats->{miss} ) ); exit; sub generate_data { my ($n) = @_; my $val = { key => $n * 42, square => $n * $n, root => sqrt( $n ), }; get_logger()->info( "data size: " . total_size( $val ) ); return $val; }