Table of Contents

Interface IMemoryPoolService

Namespace
DotCompute.Runtime.Services.Interfaces
Assembly
DotCompute.Runtime.dll

Interface for memory pool service that provides efficient buffer reuse and management.

public interface IMemoryPoolService : IDisposable
Inherited Members
Extension Methods

Properties

Statistics

Gets statistics about pool performance.

MemoryPoolStatistics Statistics { get; }

Property Value

MemoryPoolStatistics

Methods

CreateBufferAsync(long, MemoryOptions, CancellationToken)

Creates a new pooled buffer.

ValueTask<IUnifiedMemoryBuffer> CreateBufferAsync(long sizeInBytes, MemoryOptions options = MemoryOptions.None, CancellationToken cancellationToken = default)

Parameters

sizeInBytes long

The size of the buffer in bytes.

options MemoryOptions

Memory options for the buffer.

cancellationToken CancellationToken

Cancellation token.

Returns

ValueTask<IUnifiedMemoryBuffer>

A new pooled buffer.

PerformMaintenanceAsync(CancellationToken)

Performs cleanup of unused buffers and statistics.

ValueTask PerformMaintenanceAsync(CancellationToken cancellationToken = default)

Parameters

cancellationToken CancellationToken

Cancellation token.

Returns

ValueTask

ReturnBufferAsync(IUnifiedMemoryBuffer, CancellationToken)

Returns a buffer to the pool for reuse.

ValueTask ReturnBufferAsync(IUnifiedMemoryBuffer buffer, CancellationToken cancellationToken = default)

Parameters

buffer IUnifiedMemoryBuffer

The buffer to return to the pool.

cancellationToken CancellationToken

Cancellation token.

Returns

ValueTask

TryGetBufferAsync(long, MemoryOptions, CancellationToken)

Tries to get a buffer from the pool for the specified size.

ValueTask<IUnifiedMemoryBuffer?> TryGetBufferAsync(long sizeInBytes, MemoryOptions options = MemoryOptions.None, CancellationToken cancellationToken = default)

Parameters

sizeInBytes long

The size of buffer needed.

options MemoryOptions

Memory options for the buffer.

cancellationToken CancellationToken

Cancellation token.

Returns

ValueTask<IUnifiedMemoryBuffer>

A pooled buffer if available, null otherwise.