public class HeapMemoryManager extends AbstractMemoryManager<HeapBuffer> implements WrapperAware
AbstractMemoryManager.TrimAwareDEFAULT_MAX_BUFFER_SIZE, maxBufferSize, monitoringConfigDEFAULT_MEMORY_MANAGER| Constructor and Description |
|---|
HeapMemoryManager() |
HeapMemoryManager(int maxBufferSize) |
| Modifier and Type | Method and Description |
|---|---|
HeapBuffer |
allocate(int size)
Allocated
Buffer of the required size. |
HeapBuffer |
allocateAtLeast(int size)
Allocated
Buffer at least of the provided size. |
protected HeapBuffer |
allocateHeapBuffer(int size)
Creates a new HeapBuffer with a a specified size.
|
protected HeapBuffer |
allocateHeapBufferAtLeast(int size) |
protected Object |
createJmxManagementObject() |
ThreadLocalPool |
createThreadLocalPool() |
MonitoringConfig<MemoryProbe> |
getMonitoringConfig()
Return the object associated
MonitoringConfig. |
HeapBuffer |
reallocate(HeapBuffer oldBuffer,
int newSize)
Reallocate
Buffer to a required size. |
protected HeapBuffer |
reallocateHeapBuffer(HeapBuffer oldHeapBuffer,
int newSize) |
void |
release(HeapBuffer buffer)
Release
Buffer. |
protected void |
releaseHeapBuffer(HeapBuffer heapBuffer) |
boolean |
willAllocateDirect(int size)
Return true if next
MemoryManager.allocate(int) or MemoryManager.allocateAtLeast(int) call, made in the current thread
for the given memory size, going to return a Buffer based on direct ByteBuffer, or
false otherwise. |
HeapBuffer |
wrap(byte[] data)
Returns
Buffer, which wraps the byte array. |
HeapBuffer |
wrap(byte[] data,
int offset,
int length)
Returns
Buffer, which wraps the part of byte array with specific offset and length. |
Buffer |
wrap(ByteBuffer byteBuffer)
Returns
Buffer, which wraps the ByteBuffer. |
HeapBuffer |
wrap(String s)
|
HeapBuffer |
wrap(String s,
Charset charset)
|
allocateFromPool, getMaxBufferSize, getReadyThreadBufferSize, getThreadLocalPoolpublic HeapMemoryManager()
public HeapMemoryManager(int maxBufferSize)
public HeapBuffer allocate(int size)
Buffer of the required size.allocate in interface MemoryManager<HeapBuffer>size - Buffer size to be allocated.Buffer.public HeapBuffer allocateAtLeast(int size)
Buffer at least of the provided size. This could be useful for usecases like Socket.read(...),
where we're not sure how many bytes are available, but want to read as much as possible.allocateAtLeast in interface MemoryManager<HeapBuffer>size - the min Buffer size to be allocated.Buffer.public HeapBuffer reallocate(HeapBuffer oldBuffer, int newSize)
Buffer to a required size. Implementation may choose the way, how reallocation could be done,
either by allocating new Buffer of required size and copying old Buffer content there, or perform
more complex logic related to memory pooling etc.reallocate in interface MemoryManager<HeapBuffer>oldBuffer - old Buffer to be reallocated.newSize - new Buffer required size.Buffer.public void release(HeapBuffer buffer)
Buffer. Implementation may ignore releasing and let JVM Garbage collector to take care about the
Buffer, or return Buffer to pool, in case of more complex MemoryManager implementation.release in interface MemoryManager<HeapBuffer>buffer - Buffer to be released.public boolean willAllocateDirect(int size)
MemoryManager.allocate(int) or MemoryManager.allocateAtLeast(int) call, made in the current thread
for the given memory size, going to return a Buffer based on direct ByteBuffer, or
false otherwise.willAllocateDirect in interface MemoryManager<HeapBuffer>public MonitoringConfig<MemoryProbe> getMonitoringConfig()
MonitoringConfig.getMonitoringConfig in interface MonitoringAware<MemoryProbe>MonitoringConfig.public ThreadLocalPool createThreadLocalPool()
createThreadLocalPool in interface ThreadLocalPoolProviderThreadLocalPool implementation. This method must return a new ThreadLocalPool instance
per invocation.protected Object createJmxManagementObject()
createJmxManagementObject in class AbstractMemoryManager<HeapBuffer>Object used to register/deregister with the JMX runtime.public HeapBuffer wrap(byte[] data)
Buffer, which wraps the byte array.wrap in interface WrapperAwaredata - byte array to wrapBuffer wrapper on top of passed byte array.public HeapBuffer wrap(byte[] data, int offset, int length)
Buffer, which wraps the part of byte array with specific offset and length.wrap in interface WrapperAwaredata - byte array to wrapoffset - byte buffer offsetlength - byte buffer lengthBuffer wrapper on top of passed byte array.public HeapBuffer wrap(String s)
wrap in interface WrapperAwares - StringBuffer wrapper on top of passed String.public HeapBuffer wrap(String s, Charset charset)
public Buffer wrap(ByteBuffer byteBuffer)
Buffer, which wraps the ByteBuffer.wrap in interface WrapperAwarebyteBuffer - ByteBuffer to wrapBuffer wrapper on top of passed ByteBuffer.protected HeapBuffer allocateHeapBuffer(int size)
size - size of buffer createdprotected HeapBuffer allocateHeapBufferAtLeast(int size)
protected HeapBuffer reallocateHeapBuffer(HeapBuffer oldHeapBuffer, int newSize)
protected final void releaseHeapBuffer(HeapBuffer heapBuffer)
Copyright © 2017–2020 Oracle Corporation. All rights reserved.