memory-allocator
v0.2.0
Published
Simple ArrayBuffer memory allocator
Downloads
34
Keywords
Readme
memory-allocator
A simple ArrayBuffer memory allocator for JS. It can be found on NPM as memory-allocator
or @warriors-life/memory-allocator
, or on GitHub Packages as latter.
Not to be confused with the memory-pool
package, which removes the overhead of object creation by maintaining a pool of them and modifying their properties (see also PrimitivePool
).
License
MIT.
Contributing
Feel free to open an issue or make a pull request! You can find contributing guidelines here and as a start you can work on any issue labelled "good first issue".
Documentation
The package exports MemoryAllocator
class as the default and also exports MemoryRef
class.
class MemoryAllocator
The main class.
constructor(bufferSize: number = 1024 ** 2)
bufferSize
parameters controls minimal size of the new array buffers created by MemoryAllocator when it is impossible to allocate data in old buffers.
.addBuffer(size?: number >= bufferSize): ignore
Manually add a buffer of the specified size.
.allocate(size): MemoryRef
Allocate a slice of memory of the specified size. The resulting memory ref is returned.
class MemoryRef
Reference to a slice of memory. Note that underlying slice may be relocated during a manual defragmentation.
.free(): void
Mark the reference as freed. It can no longer be used after that and the underlying memory may be redistributed.
.toDataView(): DataView
Returns a DataView of the underlying memory, which can be read and written to.
.toTypedArray(class?: Class<? extends TypedArray> = Uint8Array): class
Returns a typed array mapped to the underlying memory, which can be read and written to.