Package io.netty.buffer
Class AdaptiveByteBufAllocator
- java.lang.Object
-
- io.netty.buffer.AbstractByteBufAllocator
-
- io.netty.buffer.AdaptiveByteBufAllocator
-
- All Implemented Interfaces:
ByteBufAllocator
,ByteBufAllocatorMetric
,ByteBufAllocatorMetricProvider
@UnstableApi public final class AdaptiveByteBufAllocator extends AbstractByteBufAllocator implements ByteBufAllocatorMetricProvider, ByteBufAllocatorMetric
An auto-tuning poolingByteBufAllocator
, that follows an anti-generational hypothesis.Note: this allocator is experimental. It is recommended to roll out usage slowly, and to carefully monitor application performance in the process.
See the
AdaptivePoolingAllocator
class documentation for implementation details.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static interface
AdaptiveByteBufAllocator.AdaptiveAllocatorApi
private static class
AdaptiveByteBufAllocator.DirectChunkAllocator
private static class
AdaptiveByteBufAllocator.HeapChunkAllocator
-
Field Summary
Fields Modifier and Type Field Description private static boolean
DEFAULT_USE_CACHED_MAGAZINES_FOR_NON_EVENT_LOOP_THREADS
private AdaptiveByteBufAllocator.AdaptiveAllocatorApi
direct
private AdaptiveByteBufAllocator.AdaptiveAllocatorApi
heap
private static InternalLogger
logger
-
Fields inherited from class io.netty.buffer.AbstractByteBufAllocator
CALCULATE_THRESHOLD, DEFAULT_INITIAL_CAPACITY, DEFAULT_MAX_CAPACITY, DEFAULT_MAX_COMPONENTS
-
Fields inherited from interface io.netty.buffer.ByteBufAllocator
DEFAULT
-
-
Constructor Summary
Constructors Constructor Description AdaptiveByteBufAllocator()
AdaptiveByteBufAllocator(boolean preferDirect)
AdaptiveByteBufAllocator(boolean preferDirect, boolean useCacheForNonEventLoopThreads)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
isDirectBufferPooled()
Returnstrue
if directByteBuf
's are pooledByteBufAllocatorMetric
metric()
Returns aByteBufAllocatorMetric
for aByteBufAllocator
.protected ByteBuf
newDirectBuffer(int initialCapacity, int maxCapacity)
Create a directByteBuf
with the given initialCapacity and maxCapacity.protected ByteBuf
newHeapBuffer(int initialCapacity, int maxCapacity)
Create a heapByteBuf
with the given initialCapacity and maxCapacity.long
usedDirectMemory()
Returns the number of bytes of direct memory used by aByteBufAllocator
or-1
if unknown.long
usedHeapMemory()
Returns the number of bytes of heap memory used by aByteBufAllocator
or-1
if unknown.-
Methods inherited from class io.netty.buffer.AbstractByteBufAllocator
buffer, buffer, buffer, calculateNewCapacity, compositeBuffer, compositeBuffer, compositeDirectBuffer, compositeDirectBuffer, compositeHeapBuffer, compositeHeapBuffer, directBuffer, directBuffer, directBuffer, heapBuffer, heapBuffer, heapBuffer, ioBuffer, ioBuffer, ioBuffer, toLeakAwareBuffer, toLeakAwareBuffer, toString
-
-
-
-
Field Detail
-
logger
private static final InternalLogger logger
-
DEFAULT_USE_CACHED_MAGAZINES_FOR_NON_EVENT_LOOP_THREADS
private static final boolean DEFAULT_USE_CACHED_MAGAZINES_FOR_NON_EVENT_LOOP_THREADS
-
direct
private final AdaptiveByteBufAllocator.AdaptiveAllocatorApi direct
-
heap
private final AdaptiveByteBufAllocator.AdaptiveAllocatorApi heap
-
-
Method Detail
-
newHeapBuffer
protected ByteBuf newHeapBuffer(int initialCapacity, int maxCapacity)
Description copied from class:AbstractByteBufAllocator
Create a heapByteBuf
with the given initialCapacity and maxCapacity.- Specified by:
newHeapBuffer
in classAbstractByteBufAllocator
-
newDirectBuffer
protected ByteBuf newDirectBuffer(int initialCapacity, int maxCapacity)
Description copied from class:AbstractByteBufAllocator
Create a directByteBuf
with the given initialCapacity and maxCapacity.- Specified by:
newDirectBuffer
in classAbstractByteBufAllocator
-
isDirectBufferPooled
public boolean isDirectBufferPooled()
Description copied from interface:ByteBufAllocator
Returnstrue
if directByteBuf
's are pooled- Specified by:
isDirectBufferPooled
in interfaceByteBufAllocator
-
usedHeapMemory
public long usedHeapMemory()
Description copied from interface:ByteBufAllocatorMetric
Returns the number of bytes of heap memory used by aByteBufAllocator
or-1
if unknown.- Specified by:
usedHeapMemory
in interfaceByteBufAllocatorMetric
-
usedDirectMemory
public long usedDirectMemory()
Description copied from interface:ByteBufAllocatorMetric
Returns the number of bytes of direct memory used by aByteBufAllocator
or-1
if unknown.- Specified by:
usedDirectMemory
in interfaceByteBufAllocatorMetric
-
metric
public ByteBufAllocatorMetric metric()
Description copied from interface:ByteBufAllocatorMetricProvider
Returns aByteBufAllocatorMetric
for aByteBufAllocator
.- Specified by:
metric
in interfaceByteBufAllocatorMetricProvider
-
-