logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Cache::Ref::CLOCK - CLOCK cache replacement algorithm

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

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)).

Name

       Cache::Ref::CLOCK - CLOCK cache replacement algorithm

Synopsis

           my $c = Cache::Ref::CLOCK->new(
               size => $n,
               k    => $k,
           );

See Also