Class UnpooledOffHeapMemoryAllocator

  • All Implemented Interfaces:
    OffHeapMemoryAllocator

    public class UnpooledOffHeapMemoryAllocator
    extends java.lang.Object
    implements OffHeapMemoryAllocator
    Memory allocator that just allocates memory directly using Unsafe.
    Since:
    9.0
    Author:
    wburns
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      long allocate​(long memoryLength)
      Allocates a new chunk of memory sized to the given length.
      void deallocate​(long memoryAddress, long size)
      Deallocates the memory at the given address assuming a given size.
      static long estimateSizeOverhead​(long size)
      Tries to estimate overhead of the allocation by first adding 8 to account for underlying allocator housekeeping and then rounds up to nearest power of 16 to account for 16 byte alignment.
      long getAllocatedAmount()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • UnpooledOffHeapMemoryAllocator

        public UnpooledOffHeapMemoryAllocator()
    • Method Detail

      • allocate

        public long allocate​(long memoryLength)
        Description copied from interface: OffHeapMemoryAllocator
        Allocates a new chunk of memory sized to the given length.
        Specified by:
        allocate in interface OffHeapMemoryAllocator
        Parameters:
        memoryLength - the size of memory to allocate
        Returns:
        the memory address where the memory resides
      • deallocate

        public void deallocate​(long memoryAddress,
                               long size)
        Description copied from interface: OffHeapMemoryAllocator
        Deallocates the memory at the given address assuming a given size. This size is the size that was provided to allocate.
        Specified by:
        deallocate in interface OffHeapMemoryAllocator
        Parameters:
        memoryAddress - the address to deallocate from
        size - the total size
      • estimateSizeOverhead

        public static long estimateSizeOverhead​(long size)
        Tries to estimate overhead of the allocation by first adding 8 to account for underlying allocator housekeeping and then rounds up to nearest power of 16 to account for 16 byte alignment.
        Parameters:
        size - the desired size of the allocation
        Returns:
        the resulting size taking into account various overheads