Clock cache replacement algorithm
my $c = Cache::Ref::CLOCK->new( size => $n, k => $k, );
This algorithm is provides a second chance \s-1FIFO\s0 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)).
The size of the live entries.
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 \s-1FIFO\s0 cache. Larger values of \*(C`k\*(C' model \s-1LRU\s0 more accurately. This is pretty silly though, as Cache::Ref::LRU is probably way more efficient for any \*(C`k\*(C' bigger than 1.
Yuval Kogman
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.