Package one.nio.mem
Class FixedSizeAllocator
- java.lang.Object
-
- one.nio.mem.FixedSizeAllocator
-
-
Field Summary
Fields Modifier and Type Field Description private static longADDR_MASKprotected longchunkSizeprivate static longCOUNTER_INCprivate static longCOUNTER_MASKprotected longentrySizeprotected longheadprotected static longheadOffsetprivate longp1private longp2private longp3private longp4private longp5private longp6private longp7private longq1private longq2private longq3private longq4private longq5private longq6private longq7protected longstartAddressprotected longtotalMemoryprotected longtotalPagesprotected java.util.concurrent.atomic.AtomicLongusedPages
-
Constructor Summary
Constructors Constructor Description FixedSizeAllocator(long entrySize, long chunkSize)FixedSizeAllocator(long startAddress, long totalMemory, long entrySize)FixedSizeAllocator(long startAddress, long totalMemory, long entrySize, long head)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description longcalloc(int size)longchunkSize()protected intcountFreePages()longentrySize()voidfree(long entry)longfreePages()protected longgetMemoryFromSystem(long size)longhead()longmalloc()longmalloc(int size)static voidrelocate(long currentPtr, long delta)private voidrequestMoreMemory()longstartAddress()longtotalMemory()longtotalPages()longusedMemory()longusedPages()voidverify()Verify the layout of the heap.
-
-
-
Field Detail
-
headOffset
protected static final long headOffset
-
ADDR_MASK
private static final long ADDR_MASK
- See Also:
- Constant Field Values
-
COUNTER_MASK
private static final long COUNTER_MASK
- See Also:
- Constant Field Values
-
COUNTER_INC
private static final long COUNTER_INC
- See Also:
- Constant Field Values
-
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
protected java.util.concurrent.atomic.AtomicLong 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 Detail
-
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 Detail
-
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()
-
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()
-
-