...

Source file src/github.com/hashicorp/golang-lru/v2/doc.go

Documentation: github.com/hashicorp/golang-lru/v2

     1  // Copyright (c) HashiCorp, Inc.
     2  // SPDX-License-Identifier: MPL-2.0
     3  
     4  // Package lru provides three different LRU caches of varying sophistication.
     5  //
     6  // Cache is a simple LRU cache. It is based on the LRU implementation in
     7  // groupcache: https://github.com/golang/groupcache/tree/master/lru
     8  //
     9  // TwoQueueCache tracks frequently used and recently used entries separately.
    10  // This avoids a burst of accesses from taking out frequently used entries, at
    11  // the cost of about 2x computational overhead and some extra bookkeeping.
    12  //
    13  // ARCCache is an adaptive replacement cache. It tracks recent evictions as well
    14  // as recent usage in both the frequent and recent caches. Its computational
    15  // overhead is comparable to TwoQueueCache, but the memory overhead is linear
    16  // with the size of the cache.
    17  //
    18  // ARC has been patented by IBM, so do not use it if that is problematic for
    19  // your program. For this reason, it is in a separate go module contained within
    20  // this repository.
    21  //
    22  // All caches in this package take locks while operating, and are therefore
    23  // thread-safe for consumers.
    24  package lru
    25  

View as plain text