Package org.apache.lucene.util
Class FrequencyTrackingRingBuffer
java.lang.Object
org.apache.lucene.util.FrequencyTrackingRingBuffer
- All Implemented Interfaces:
Accountable
A ring buffer that tracks the frequency of the integers that it contains. This is typically
useful to track the hash codes of popular recently-used items.
This data-structure requires 22 bytes per entry on average (between 16 and 28).
- NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.
-
Field Summary
Fields inherited from interface org.apache.lucene.util.Accountable
NULL_ACCOUNTABLE
-
Constructor Summary
ConstructorDescriptionFrequencyTrackingRingBuffer
(int maxSize, int sentinel) Create a new ring buffer that will contain at mostmaxSize
items. -
Method Summary
Modifier and TypeMethodDescriptionvoid
add
(int i) Add a new item to this ring buffer, potentially removing the oldest entry from this buffer if it is already full.int
frequency
(int key) Returns the frequency of the provided key in the ring buffer.long
Return the memory usage of this object in bytes.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.apache.lucene.util.Accountable
getChildResources
-
Constructor Details
-
FrequencyTrackingRingBuffer
public FrequencyTrackingRingBuffer(int maxSize, int sentinel) Create a new ring buffer that will contain at mostmaxSize
items. This buffer will initially containmaxSize
times thesentinel
value.
-
-
Method Details
-
ramBytesUsed
public long ramBytesUsed()Description copied from interface:Accountable
Return the memory usage of this object in bytes. Negative values are illegal.- Specified by:
ramBytesUsed
in interfaceAccountable
-
add
public void add(int i) Add a new item to this ring buffer, potentially removing the oldest entry from this buffer if it is already full. -
frequency
public int frequency(int key) Returns the frequency of the provided key in the ring buffer.
-