Skip to content

Commit 70c96cb

Browse files
author
LoneWandererProductions
committed
add more samples
1 parent 99ea91d commit 70c96cb

1 file changed

Lines changed: 39 additions & 1 deletion

File tree

README.md

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,4 +79,42 @@ var gameArena = new MemoryArena(gameConfig);
7979
// Instantiates a robust Free-List strategy engine capable of
8080
// managing out-of-order data transfers with larger block thresholds.
8181
var streamConfig = MemoryManagerConfig.CreateForBulkProcessing(totalBudget: 128 * 1024 * 1024);
82-
var streamArena = new MemoryArena(streamConfig);
82+
var streamArena = new MemoryArena(streamConfig);
83+
```
84+
85+
## Basic CRUD Operations & Extension Methods
86+
87+
```csharp
88+
using MemoryManager;
89+
using MemoryManager.Core;
90+
91+
var arena = new MemoryArena(new MemoryManagerConfig(8 * 1024 * 1024));
92+
93+
// 1. Core Allocation & Value Storage
94+
var healthHandle = arena.AllocateAndStore(100);
95+
96+
// 2. Multi-Element Unmanaged Arrays
97+
int[] sourceData = { 10, 20, 30, 40, 50 };
98+
var arrayHandle = arena.AllocateArray<int>(sourceData.Length);
99+
100+
// Atomic, thread-safe bulk block transfer
101+
arena.BulkSet(arrayHandle, sourceData);
102+
103+
// 3. High-Speed Zero-Allocation Spans (Hot Paths)
104+
var span = arena.GetSpan<int>(arrayHandle, sourceData.Length);
105+
foreach (ref var value in span)
106+
{
107+
value *= 2; // Direct address modifications at hardware cache line speeds
108+
}
109+
110+
// 4. Compact UTF-8 String Storage (Bypasses GC & 50% RAM reduction)
111+
var stringHandle = arena.StoreString("Hello from the native unmanaged Arena!");
112+
113+
// 5. Automated Janitor Lifecycle Advancement (Once Per Tick/Frame)
114+
arena.TickFrame();
115+
arena.RunMaintenanceCycle();
116+
117+
// 6. Explicit Deallocation
118+
arena.Free(healthHandle);
119+
arena.Free(arrayHandle);
120+
```

0 commit comments

Comments
 (0)