Class MemoryPool
- Namespace
- DotCompute.Memory
- Assembly
- DotCompute.Memory.dll
Memory pool for efficient buffer reuse with comprehensive statistics. This consolidates memory pool functionality from multiple implementations.
public sealed class MemoryPool : IDisposable
- Inheritance
-
MemoryPool
- Implements
- Inherited Members
- Extension Methods
Constructors
MemoryPool(ILogger)
Creates a new memory pool with periodic cleanup.
public MemoryPool(ILogger logger)
Parameters
loggerILoggerLogger for diagnostics.
Properties
Statistics
Gets the statistics for this memory pool.
public MemoryStatistics Statistics { get; }
Property Value
Methods
Dispose()
Disposes the memory pool and frees all pooled buffers.
public void Dispose()
PerformMaintenanceAsync()
Performs maintenance on the memory pool, freeing unused buffers.
public ValueTask PerformMaintenanceAsync()
Returns
- ValueTask
A task representing the async operation.
ReturnBufferAsync(nint, long)
Returns a buffer to the pool for reuse.
public ValueTask ReturnBufferAsync(nint handle, long size)
Parameters
Returns
- ValueTask
A task representing the async operation.
TryGetBufferAsync(long, MemoryOptions, CancellationToken)
Attempts to get a buffer from the pool.
public ValueTask<nint?> TryGetBufferAsync(long size, MemoryOptions options, CancellationToken cancellationToken)
Parameters
sizelongThe requested buffer size.
optionsMemoryOptionsMemory options (currently unused).
cancellationTokenCancellationTokenCancellation token.