Cache-Benchmark
view release on metacpan or search on metacpan
lib/Cache/Benchmark.pm view on Meta::CPAN
means: from 1.5% till 10% the keys will have a 10 times higher chance...
=item 35 => 7
means: from 10% till 35% ... 7 times higher ...
...etc
=back
the key (percent) can be a FLOAT, value (weight) has to be an INT
=item B<accesslist>: ARRAYREF [default: undef]
sets the list of keys the benchmark-test will use in run(). (an ARRAYREF of INT) Usable to repeat exactly the same test
which was stored via L</get_generated_keylist()> or to define your own list. If you give an access list, all other parameters,
except L</sleep_time>, are senseless.
Attention: the arrayref is not dereferenced!
=back
lib/Cache/Benchmark.pm view on Meta::CPAN
my $i = 0;
foreach(1..$access_counter) {
$i = 0 if($i > $#$plain_list);
push(@$list, $self->_fill_key($plain_list->[$i++], $key_length));
}
} elsif($test_type eq 'random') {
foreach(1..$access_counter) {
push(@$list, $self->_fill_key($self->_generate_random_number($keylist_length - 1), $key_length) );
}
} elsif($test_type eq 'weighted') {
my @sorted_percents = sort({ $a <=> $b } keys(%$weighted_config));
my $actual_step = shift(@sorted_percents);
my $plain_keylist = [];
foreach my $key ( 0..($keylist_length - 1) ) {
my $weight = 1;
if(defined($actual_step)) {
my $percent = (($key + 1) / $keylist_length) * 100;
$actual_step = shift(@sorted_percents) if($actual_step < $percent);
$weight = int($weighted_config->{$actual_step}) if(defined($actual_step));
}
foreach(1..$weight) {
push(@$plain_keylist, $self->_fill_key($key, $key_length));
}
}
my $length = $#$plain_keylist;
foreach(1..$access_counter) {
push(@$list, $plain_keylist->[$self->_generate_random_number($length)]);
}
( run in 0.317 second using v1.01-cache-2.11-cpan-624ce96ca49 )