Package one.nio.mem
Class FixedSizeAllocator
java.lang.Object
one.nio.mem.FixedSizeAllocator
- All Implemented Interfaces:
Allocator
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final longprotected final longprivate static final longprivate static final longprotected final longprotected longprotected static final longprivate longprivate longprivate longprivate longprivate longprivate longprivate longprivate longprivate longprivate longprivate longprivate longprivate longprivate longprotected final longprotected longprotected longprotected AtomicLong -
Constructor Summary
ConstructorsConstructorDescriptionFixedSizeAllocator(long entrySize, long chunkSize) FixedSizeAllocator(long startAddress, long totalMemory, long entrySize) FixedSizeAllocator(long startAddress, long totalMemory, long entrySize, long head) -
Method Summary
Modifier and TypeMethodDescriptionlongcalloc(int size) longprotected intlongvoidfree(long entry) longprotected longgetMemoryFromSystem(long size) longhead()longmalloc()longmalloc(int size) static voidrelocate(long currentPtr, long delta) private voidlonglonglonglonglongvoidverify()Verify the layout of the heap.
-
Field Details
-
headOffset
protected static final long headOffset -
ADDR_MASK
private static final long ADDR_MASK- See Also:
-
COUNTER_MASK
private static final long COUNTER_MASK- See Also:
-
COUNTER_INC
private static final long COUNTER_INC- See Also:
-
p1
private volatile long p1 -
p2
private volatile long p2 -
p3
private volatile long p3 -
p4
private volatile long p4 -
p5
private volatile long p5 -
p6
private volatile long p6 -
p7
private volatile long p7 -
head
protected volatile long head -
q1
private volatile long q1 -
q2
private volatile long q2 -
q3
private volatile long q3 -
q4
private volatile long q4 -
q5
private volatile long q5 -
q6
private volatile long q6 -
q7
private volatile long q7 -
usedPages
-
startAddress
protected final long startAddress -
entrySize
protected final long entrySize -
chunkSize
protected final long chunkSize -
totalMemory
protected long totalMemory -
totalPages
protected long totalPages
-
-
Constructor Details
-
FixedSizeAllocator
public FixedSizeAllocator(long entrySize, long chunkSize) -
FixedSizeAllocator
public FixedSizeAllocator(long startAddress, long totalMemory, long entrySize) -
FixedSizeAllocator
public FixedSizeAllocator(long startAddress, long totalMemory, long entrySize, long head)
-
-
Method Details
-
relocate
public static void relocate(long currentPtr, long delta) -
head
public long head() -
countFreePages
protected int countFreePages() -
entrySize
public long entrySize() -
chunkSize
public long chunkSize() -
startAddress
public long startAddress() -
totalMemory
public long totalMemory() -
malloc
public long malloc() -
malloc
public long malloc(int size) -
calloc
public long calloc(int size) -
free
public void free(long entry) -
verify
public void verify()Description copied from interface:AllocatorVerify the layout of the heap. Expensive operation, used only for debugging purposes. -
requestMoreMemory
private void requestMoreMemory() -
getMemoryFromSystem
protected long getMemoryFromSystem(long size) -
usedPages
public long usedPages() -
totalPages
public long totalPages() -
freePages
public long freePages() -
usedMemory
public long usedMemory()
-