Package org.apache.lucene.util
Class RecyclingByteBlockAllocator
java.lang.Object
org.apache.lucene.util.ByteBlockPool.Allocator
org.apache.lucene.util.RecyclingByteBlockAllocator
A
ByteBlockPool.Allocator
implementation that recycles unused byte blocks in a buffer and
reuses them in subsequent calls to getByteBlock()
.
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.ByteBlockPool.Allocator
blockSize
-
Constructor Summary
ConstructorsConstructorDescriptionCreates a newRecyclingByteBlockAllocator
with a block size ofByteBlockPool.BYTE_BLOCK_SIZE
, upper buffered docs limit ofDEFAULT_BUFFERED_BLOCKS
(64).RecyclingByteBlockAllocator
(int blockSize, int maxBufferedBlocks) Creates a newRecyclingByteBlockAllocator
.RecyclingByteBlockAllocator
(int blockSize, int maxBufferedBlocks, Counter bytesUsed) Creates a newRecyclingByteBlockAllocator
-
Method Summary
Modifier and TypeMethodDescriptionlong
int
freeBlocks
(int num) Removes the given number of byte blocks from the buffer if possible.byte[]
int
int
void
recycleByteBlocks
(byte[][] blocks, int start, int end) Methods inherited from class org.apache.lucene.util.ByteBlockPool.Allocator
recycleByteBlocks
-
Field Details
-
DEFAULT_BUFFERED_BLOCKS
public static final int DEFAULT_BUFFERED_BLOCKS- See Also:
-
-
Constructor Details
-
RecyclingByteBlockAllocator
Creates a newRecyclingByteBlockAllocator
- Parameters:
blockSize
- the block size in bytesmaxBufferedBlocks
- maximum number of buffered byte blockbytesUsed
-Counter
reference counting internally allocated bytes
-
RecyclingByteBlockAllocator
public RecyclingByteBlockAllocator(int blockSize, int maxBufferedBlocks) Creates a newRecyclingByteBlockAllocator
.- Parameters:
blockSize
- the block size in bytesmaxBufferedBlocks
- maximum number of buffered byte block
-
RecyclingByteBlockAllocator
public RecyclingByteBlockAllocator()Creates a newRecyclingByteBlockAllocator
with a block size ofByteBlockPool.BYTE_BLOCK_SIZE
, upper buffered docs limit ofDEFAULT_BUFFERED_BLOCKS
(64).
-
-
Method Details
-
getByteBlock
public byte[] getByteBlock()- Overrides:
getByteBlock
in classByteBlockPool.Allocator
-
recycleByteBlocks
public void recycleByteBlocks(byte[][] blocks, int start, int end) - Specified by:
recycleByteBlocks
in classByteBlockPool.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
ByteBlockPool.Allocator
-
maxBufferedBlocks
public int maxBufferedBlocks()- Returns:
- the maximum number of buffered byte blocks
-
freeBlocks
public int freeBlocks(int num) Removes the given number of byte blocks from the buffer if possible.- Parameters:
num
- the number of byte blocks to remove- Returns:
- the number of actually removed buffers
-