Introduction
Avalanche.Memory addresses many shortcomings of .NET I/O and memory management:
- Expands 32-bit indexing to 64-bit
- Concurrent usage
- Expand over 2GB memory allocation limitations
- Simplifies .NET's confusing plethora of types into one interface
- Incremental use for fixed-size memory regions
- Slicing with every memory content type
Features:
- Unifies Arrays, IList, IList<T>, Span<T>, Memory<T>, ReadOnlyMemory<T>, Memory-mapped file, pointers, Streams and files under one interface.
- IList<T> and IEnumerable<T> for consumer
- IList<T> as producer
- Memory<T> and Span<T> can be adapted to IMemory
- Memory<T> and Span<T> can be written to and read from IMemory
- 64-bit
- Read and write events: Capability for last modify and last access times (for cache implementations)
- Zero heap allocation capabilities
- Concurrent thread usage
- Random access memory
- Element insertion and removals
- Stream views
- Memory pooling
- Protobuf compatible serializations
Class libraries:
- Avalanche.Memory.dll contains implementations.
- Avalanche.Memory.Abstractions.dll contains interfaces.
Full Example
Full example
class index
{
public static void Run()
{
{
// <01>
// </01>
}
}
}