Package org.eclipse.jetty.io
Class LogarithmicArrayByteBufferPool
- java.lang.Object
-
- org.eclipse.jetty.io.ArrayByteBufferPool
-
- org.eclipse.jetty.io.LogarithmicArrayByteBufferPool
-
- All Implemented Interfaces:
ByteBufferPool
,Dumpable
public class LogarithmicArrayByteBufferPool extends ArrayByteBufferPool
Extension of theArrayByteBufferPool
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.Lease
-
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Dumpable
Dumpable.DumpableContainer
-
-
Constructor Summary
Constructors Constructor Description LogarithmicArrayByteBufferPool()
Creates 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
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected int
bucketFor(int capacity)
protected int
capacityFor(int bucket)
protected void
decrementMemory(java.nio.ByteBuffer buffer)
Deprecated.protected int
getCapacityFactor()
long
getDirectMemory()
long
getHeapMemory()
long
getMaxDirectMemory()
long
getMaxHeapMemory()
protected int
getMaxQueueLength()
long
getMemory(boolean direct)
protected void
incrementMemory(java.nio.ByteBuffer buffer)
Deprecated.protected void
releaseExcessMemory(boolean direct, java.util.function.Consumer<java.lang.Boolean> clearFn)
protected void
releaseMemory(boolean direct)
-
Methods inherited from class org.eclipse.jetty.io.ArrayByteBufferPool
acquire, clear, dump, getDirectByteBufferCount, getHeapByteBufferCount, isDetailedDump, release, setDetailedDump, toString
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.eclipse.jetty.io.ByteBufferPool
newByteBuffer, remove
-
-
-
-
Constructor Detail
-
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 Detail
-
bucketFor
protected int bucketFor(int capacity)
- Overrides:
bucketFor
in classArrayByteBufferPool
-
capacityFor
protected int capacityFor(int bucket)
- Overrides:
capacityFor
in classArrayByteBufferPool
-
releaseMemory
protected void releaseMemory(boolean direct)
- Overrides:
releaseMemory
in classArrayByteBufferPool
-
getCapacityFactor
protected int getCapacityFactor()
-
getMaxQueueLength
protected int getMaxQueueLength()
-
decrementMemory
@Deprecated protected void decrementMemory(java.nio.ByteBuffer buffer)
Deprecated.
-
incrementMemory
@Deprecated protected void incrementMemory(java.nio.ByteBuffer buffer)
Deprecated.
-
releaseExcessMemory
protected void releaseExcessMemory(boolean direct, java.util.function.Consumer<java.lang.Boolean> clearFn)
-
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)
-
-