Table of Contents

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

logger ILogger

Logger for diagnostics.

Properties

Statistics

Gets the statistics for this memory pool.

public MemoryStatistics Statistics { get; }

Property Value

MemoryStatistics

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

handle nint

The buffer handle to return.

size long

The original size of the buffer.

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

size long

The requested buffer size.

options MemoryOptions

Memory options (currently unused).

cancellationToken CancellationToken

Cancellation token.

Returns

ValueTask<nint?>

A pooled buffer handle, or null if none available.