Physical address representation.
Physical address representation. It's always an alias to Long on JVM but can also be Int on other platforms (e.g. on JS)
An off-heap memory allocator.
Off-heap equivalent of scala.Array
.
Off-heap equivalent of scala.Array
. Can only be used
with statically known values of type parameter which also
has to be off-heap allocatable.
All combinator methods are implemented through macros and attempt to eliminate closures that are passed to them whenever possible.
An exception that is thrown when safe as[T]
cast fails.
An alternative implemenation of an array that inlines allocation of given offheap class into the array layout.
An alternative implemenation of an array that inlines allocation of given offheap class into the array layout. This effectively makes it an array of structs in C sense.
An exception that is thrown in checked memory mode when a pointer to inaccassible memory is dereferenced.
An exception that is thrown in checked memory mode when a pointer to inaccassible memory is dereferenced. (e.g. pointer to closed region)
An exception that is thrown when Allocator can not allocate requested memory.
Efficient pool of fixed-size memory pages.
Efficient pool of fixed-size memory pages. Allocations from underlying allocator are performed in big chunks of memory that are sliced into pages of requested size.
Pages and chunks are organized in a intrusive linked list way to minimise memory overhead and re-use the same nodes for the whole lifetime of the pool.
Memory is reclaimed back to underlying alocator once the pool is finalized.
An optimized implementation of region that performs all allocations sequentially in pages that are claimed from memory pool.
An optimized implementation of region that performs all allocations sequentially in pages that are claimed from memory pool. It can not perform allocations bigger than memory pool page. This limitation is trade off to achieve superior allocation and deallocation performance.
Family of scoped memory allocators.
Family of scoped memory allocators. Allocated memory is available as long as execution is still in given region scope and is cleaned up once it's done
A few memory management implemenations are available.
It's possible to pick the desirable implementation using
an implicit instance of Region.Props
.
An exception that is thrown whenever one tries to call methods of the closed region.
Physical memory size representation It's always an alias to Long on JVM but can also be Int on other platforms (e.g.
Physical memory size representation It's always an alias to Long on JVM but can also be Int on other platforms (e.g. on JS)
Macro annotation that transforms given class into case-class-like offheap class.
Macro annotation that transforms given class into case-class-like offheap class.
Annotation that marks fields as embedded.
Annotation that marks fields as embedded. Such fields are effectively inlined into the outer class in terms of their data layout.
Macro annotation that transforms given class into sealed-abstract-class-like offheap class.
Macro annotation that transforms given class into sealed-abstract-class-like offheap class. All off-heap classes defined in its companion form an off-heap child-parent relationship.
Alignment of given type T
when used as a field in offheap class.
Alignment of given type T
when used as an embed field in offheap class.
Underyling OS allocator that does not attempt to perform any automatic memory management (all allocations must have accompanied calls to free.)
Offset of given field
in offheap class T
.
Size of given type T
when used as a field in offheap class.
Size of given type T
when used as an embed field in offheap class.
Size of memory between successive elements in Array[T]
.
Size of memory between successive elements in EmbedArray[T]
.