Package one.nio.mem
Class ArenaAllocator
java.lang.Object
one.nio.mem.ArenaAllocator
- All Implemented Interfaces:
Allocator
Fast arena-based allocator that does not suffer from fragmentation.
Individual objects cannot be released; arena is disposed all at once.
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate longprivate ArenaAllocator.Arenaprivate static final long -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionlongcalloc(int size) voidfree(long address) longprotected longgetMemoryFromSystem(long size) private ArenaAllocator.ArenagetNextArena(ArenaAllocator.Arena current, long size) longlongmalloc(int size) voidrelease()protected voidreleaseMemoryToSystem(long addr, long size) voidverify()Verify the layout of the heap.
-
Field Details
-
MIN_ARENA_SIZE
private static final long MIN_ARENA_SIZE- See Also:
-
current
-
accumulatedBytes
private long accumulatedBytes
-
-
Constructor Details
-
ArenaAllocator
public ArenaAllocator()
-
-
Method Details
-
release
public void release() -
malloc
public long malloc(int size) -
calloc
public long calloc(int size) -
free
public void free(long address) -
verify
public void verify()Description copied from interface:AllocatorVerify the layout of the heap. Expensive operation, used only for debugging purposes. -
getNextArena
-
getMemoryFromSystem
protected long getMemoryFromSystem(long size) -
releaseMemoryToSystem
protected void releaseMemoryToSystem(long addr, long size) -
getAllocatedBytes
public long getAllocatedBytes() -
getReservedBytes
public long getReservedBytes()
-