C# Класс SocketServers.SmartBufferPool

Lock-free buffer pool implementation, it is more simple solution than classic memory manager algorithms (e.g. buddy memory manager). But it should use less extra calculation for allocation and freeing buffers. It like "smart" buffer pool, it slices desired sizes, and do not free slices but put it in pool for further using. So big buffer should be sliced for concrete application.
Показать файл Открыть проект Примеры использования класса

Открытые свойства

Свойство Тип Описание
ExtraMemoryUsage long
InitialMemoryUsage long
MaxBuffersCount long
MaxMemoryUsage long

Открытые методы

Метод Описание
Allocate ( int size ) : ArraySegment
Free ( ArraySegment segment ) : void
SmartBufferPool ( int maxMemoryUsageMb, int initialSizeMb, int extraBufferSizeMb ) : System

Приватные методы

Метод Описание
GetAllocated ( int size, int &index, int &offset ) : bool
GetBitOffset ( int size ) : int
NewBuffer ( long size ) : byte[]

Описание методов

Allocate() публичный Метод

public Allocate ( int size ) : ArraySegment
size int
Результат ArraySegment

Free() публичный Метод

public Free ( ArraySegment segment ) : void
segment ArraySegment
Результат void

SmartBufferPool() публичный Метод

public SmartBufferPool ( int maxMemoryUsageMb, int initialSizeMb, int extraBufferSizeMb ) : System
maxMemoryUsageMb int
initialSizeMb int
extraBufferSizeMb int
Результат System

Описание свойств

ExtraMemoryUsage публичное свойство

public long ExtraMemoryUsage
Результат long

InitialMemoryUsage публичное свойство

public long InitialMemoryUsage
Результат long

MaxBuffersCount публичное свойство

public long MaxBuffersCount
Результат long

MaxMemoryUsage публичное свойство

public long MaxMemoryUsage
Результат long