NAME¶
Cache::Ref::CLOCK - CLOCK cache replacement algorithm
SYNOPSIS¶
my $c = Cache::Ref::CLOCK->new(
size => $n,
k => $k,
);
DESCRIPTION¶
This algorithm is provides a second chance FIFO cache expiry policy using a
circular buffer.
It is a very well accepted page replacement algorithm, but largely for reasons
which are irrelevant in this context (cache hits don't need to be serialized
in a multiprocessing context as they only require an idempotent operation
(setting a bit to 1)).
ATTRIBUTES¶
- size
- The size of the live entries.
- k
- This is the initial value given to all hit entries.
As the hand moves through the circular buffer it decrements the counters.
The default is 1, providing semantics similar to a second chance FIFO cache.
Larger values of "k" model LRU more accurately.
This is pretty silly though, as Cache::Ref::LRU is probably way more
efficient for any "k" bigger than 1.
AUTHOR¶
Yuval Kogman
COPYRIGHT AND LICENSE¶
This software is copyright (c) 2010 by Yuval Kogman.
This is free software; you can redistribute it and/or modify it under the same
terms as the Perl 5 programming language system itself.