java.lang.Object
org.eclipse.jetty.io.ArrayByteBufferPool
org.eclipse.jetty.io.LogarithmicArrayByteBufferPool
- All Implemented Interfaces:
ByteBufferPool,org.eclipse.jetty.util.component.Dumpable
Extension of the
ArrayByteBufferPool whose bucket sizes increase exponentially instead of linearly.
Each bucket will be double the size of the previous bucket, this decreases the amounts of buckets required
which can lower total memory usage if buffers are often being acquired of different sizes. However as there are
fewer buckets this will also increase the contention on each bucket.-
Nested Class Summary
Nested classes/interfaces inherited from interface org.eclipse.jetty.io.ByteBufferPool
ByteBufferPool.Bucket, ByteBufferPool.LeaseNested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Dumpable
org.eclipse.jetty.util.component.Dumpable.DumpableContainer -
Field Summary
Fields inherited from interface org.eclipse.jetty.util.component.Dumpable
KEY -
Constructor Summary
ConstructorsConstructorDescriptionCreates a new ByteBufferPool with a default configuration.LogarithmicArrayByteBufferPool(int minCapacity, int maxCapacity) Creates a new ByteBufferPool with the given configuration.LogarithmicArrayByteBufferPool(int minCapacity, int maxCapacity, int maxQueueLength) Creates a new ByteBufferPool with the given configuration.LogarithmicArrayByteBufferPool(int minCapacity, int maxCapacity, int maxQueueLength, long maxHeapMemory, long maxDirectMemory) Creates a new ByteBufferPool with the given configuration. -
Method Summary
Modifier and TypeMethodDescriptionprotected intbucketFor(int capacity) protected intcapacityFor(int bucket) protected voiddecrementMemory(ByteBuffer buffer) Deprecated.protected intlonglonglonglongprotected intlonggetMemory(boolean direct) protected voidincrementMemory(ByteBuffer buffer) Deprecated.protected voidreleaseExcessMemory(boolean direct, Consumer<Boolean> clearFn) protected voidreleaseMemory(boolean direct) Methods inherited from class org.eclipse.jetty.io.ArrayByteBufferPool
acquire, clear, dump, getDirectByteBufferCount, getHeapByteBufferCount, isDetailedDump, release, setDetailedDump, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.eclipse.jetty.io.ByteBufferPool
newByteBuffer, removeMethods inherited from interface org.eclipse.jetty.util.component.Dumpable
dump, dumpSelf
-
Constructor Details
-
LogarithmicArrayByteBufferPool
public LogarithmicArrayByteBufferPool()Creates a new ByteBufferPool with a default configuration. -
LogarithmicArrayByteBufferPool
public LogarithmicArrayByteBufferPool(int minCapacity, int maxCapacity) Creates a new ByteBufferPool with the given configuration.- Parameters:
minCapacity- the minimum ByteBuffer capacitymaxCapacity- the maximum ByteBuffer capacity
-
LogarithmicArrayByteBufferPool
public LogarithmicArrayByteBufferPool(int minCapacity, int maxCapacity, int maxQueueLength) Creates a new ByteBufferPool with the given configuration.- Parameters:
minCapacity- the minimum ByteBuffer capacitymaxCapacity- the maximum ByteBuffer capacitymaxQueueLength- the maximum ByteBuffer queue length
-
LogarithmicArrayByteBufferPool
public LogarithmicArrayByteBufferPool(int minCapacity, int maxCapacity, int maxQueueLength, long maxHeapMemory, long maxDirectMemory) Creates a new ByteBufferPool with the given configuration.- Parameters:
minCapacity- the minimum ByteBuffer capacitymaxCapacity- the maximum ByteBuffer capacitymaxQueueLength- the maximum ByteBuffer queue lengthmaxHeapMemory- the max heap memory in bytesmaxDirectMemory- the max direct memory in bytes
-
-
Method Details
-
bucketFor
protected int bucketFor(int capacity) - Overrides:
bucketForin classArrayByteBufferPool
-
capacityFor
protected int capacityFor(int bucket) - Overrides:
capacityForin classArrayByteBufferPool
-
releaseMemory
protected void releaseMemory(boolean direct) - Overrides:
releaseMemoryin classArrayByteBufferPool
-
getCapacityFactor
protected int getCapacityFactor() -
getMaxQueueLength
protected int getMaxQueueLength() -
decrementMemory
Deprecated. -
incrementMemory
Deprecated. -
releaseExcessMemory
-
getDirectMemory
@ManagedAttribute("The bytes retained by direct ByteBuffers") public long getDirectMemory() -
getHeapMemory
@ManagedAttribute("The bytes retained by heap ByteBuffers") public long getHeapMemory() -
getMaxDirectMemory
@ManagedAttribute("The max num of bytes that can be retained from direct ByteBuffers") public long getMaxDirectMemory() -
getMaxHeapMemory
@ManagedAttribute("The max num of bytes that can be retained from heap ByteBuffers") public long getMaxHeapMemory() -
getMemory
public long getMemory(boolean direct)
-