123456789101112131415161718192021 |
- // Package lru provides three different LRU caches of varying sophistication.
- //
- // Cache is a simple LRU cache. It is based on the
- // LRU implementation in groupcache:
- // https://github.com/golang/groupcache/tree/master/lru
- //
- // TwoQueueCache tracks frequently used and recently used entries separately.
- // This avoids a burst of accesses from taking out frequently used entries,
- // at the cost of about 2x computational overhead and some extra bookkeeping.
- //
- // ARCCache is an adaptive replacement cache. It tracks recent evictions as
- // well as recent usage in both the frequent and recent caches. Its
- // computational overhead is comparable to TwoQueueCache, but the memory
- // overhead is linear with the size of the cache.
- //
- // ARC has been patented by IBM, so do not use it if that is problematic for
- // your program.
- //
- // All caches in this package take locks while operating, and are therefore
- // thread-safe for consumers.
- package lru
|