Package org.apache.lucene.util
Class FrequencyTrackingRingBuffer
- java.lang.Object
-
- org.apache.lucene.util.FrequencyTrackingRingBuffer
-
- All Implemented Interfaces:
Accountable
public final class FrequencyTrackingRingBuffer extends Object implements 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
Constructors Constructor Description FrequencyTrackingRingBuffer(int maxSize, int sentinel)Create a new ring buffer that will contain at mostmaxSizeitems.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidadd(int i)Add a new item to this ring buffer, potentially removing the oldest entry from this buffer if it is already full.intfrequency(int key)Returns the frequency of the provided key in the ring buffer.longramBytesUsed()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
-
-
-
-
Method Detail
-
ramBytesUsed
public long ramBytesUsed()
Description copied from interface:AccountableReturn the memory usage of this object in bytes. Negative values are illegal.- Specified by:
ramBytesUsedin 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.
-
-