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 mostmaxSize
items.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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.int
frequency(int key)
Returns the frequency of the provided key in the ring buffer.long
ramBytesUsed()
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: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.
-
-