Package org.apache.lucene.util
Class RecyclingIntBlockAllocator
java.lang.Object
org.apache.lucene.util.IntBlockPool.Allocator
org.apache.lucene.util.RecyclingIntBlockAllocator
A
IntBlockPool.Allocator implementation that recycles unused int blocks in a buffer and reuses them in
subsequent calls to getIntBlock().
Note: This class is not thread-safe
- NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.
-
Field Summary
FieldsFields inherited from class org.apache.lucene.util.IntBlockPool.Allocator
blockSize -
Constructor Summary
ConstructorsConstructorDescriptionCreates a newRecyclingIntBlockAllocatorwith a block size ofIntBlockPool.INT_BLOCK_SIZE, upper buffered docs limit ofDEFAULT_BUFFERED_BLOCKS(64).RecyclingIntBlockAllocator(int blockSize, int maxBufferedBlocks) Creates a newRecyclingIntBlockAllocator.RecyclingIntBlockAllocator(int blockSize, int maxBufferedBlocks, Counter bytesUsed) Creates a newRecyclingIntBlockAllocator -
Method Summary
Modifier and TypeMethodDescriptionlongintfreeBlocks(int num) Removes the given number of int blocks from the buffer if possible.int[]intintvoidrecycleIntBlocks(int[][] blocks, int start, int end)
-
Field Details
-
DEFAULT_BUFFERED_BLOCKS
public static final int DEFAULT_BUFFERED_BLOCKS- See Also:
-
-
Constructor Details
-
RecyclingIntBlockAllocator
Creates a newRecyclingIntBlockAllocator- Parameters:
blockSize- the block size in bytesmaxBufferedBlocks- maximum number of buffered int blockbytesUsed-Counterreference counting internally allocated bytes
-
RecyclingIntBlockAllocator
public RecyclingIntBlockAllocator(int blockSize, int maxBufferedBlocks) Creates a newRecyclingIntBlockAllocator.- Parameters:
blockSize- the size of each block returned by this allocatormaxBufferedBlocks- maximum number of buffered int blocks
-
RecyclingIntBlockAllocator
public RecyclingIntBlockAllocator()Creates a newRecyclingIntBlockAllocatorwith a block size ofIntBlockPool.INT_BLOCK_SIZE, upper buffered docs limit ofDEFAULT_BUFFERED_BLOCKS(64).
-
-
Method Details
-
getIntBlock
public int[] getIntBlock()- Overrides:
getIntBlockin classIntBlockPool.Allocator
-
recycleIntBlocks
public void recycleIntBlocks(int[][] blocks, int start, int end) - Specified by:
recycleIntBlocksin classIntBlockPool.Allocator
-
numBufferedBlocks
public int numBufferedBlocks()- Returns:
- the number of currently buffered blocks
-
bytesUsed
public long bytesUsed()- Returns:
- the number of bytes currently allocated by this
IntBlockPool.Allocator
-
maxBufferedBlocks
public int maxBufferedBlocks()- Returns:
- the maximum number of buffered byte blocks
-
freeBlocks
public int freeBlocks(int num) Removes the given number of int blocks from the buffer if possible.- Parameters:
num- the number of int blocks to remove- Returns:
- the number of actually removed buffers
-