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
Methods
CreateBufferAsync(long, MemoryOptions, CancellationToken)
Creates a new pooled buffer.
ValueTask<IUnifiedMemoryBuffer> CreateBufferAsync(long sizeInBytes, MemoryOptions options = MemoryOptions.None, CancellationToken cancellationToken = default)
Parameters
sizeInByteslongThe size of the buffer in bytes.
optionsMemoryOptionsMemory options for the buffer.
cancellationTokenCancellationTokenCancellation token.
Returns
- ValueTask<IUnifiedMemoryBuffer>
A new pooled buffer.
PerformMaintenanceAsync(CancellationToken)
Performs cleanup of unused buffers and statistics.
ValueTask PerformMaintenanceAsync(CancellationToken cancellationToken = default)
Parameters
cancellationTokenCancellationTokenCancellation token.
Returns
ReturnBufferAsync(IUnifiedMemoryBuffer, CancellationToken)
Returns a buffer to the pool for reuse.
ValueTask ReturnBufferAsync(IUnifiedMemoryBuffer buffer, CancellationToken cancellationToken = default)
Parameters
bufferIUnifiedMemoryBufferThe buffer to return to the pool.
cancellationTokenCancellationTokenCancellation token.
Returns
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
sizeInByteslongThe size of buffer needed.
optionsMemoryOptionsMemory options for the buffer.
cancellationTokenCancellationTokenCancellation token.
Returns
- ValueTask<IUnifiedMemoryBuffer>
A pooled buffer if available, null otherwise.