• Articles
  • API Documentation
  • SixLabors.ImageSharp.Memory
  • ArrayPoolMemoryAllocator
Search Results for

    Show / Hide Table of Contents
    • SixLabors.ImageSharp
      • Color
      • ColorMatrix
      • Configuration
      • DenseMatrix<T>
      • GeometryUtilities
      • GraphicOptionsDefaultsExtensions
      • GraphicsOptions
      • IConfigurationModule
      • IDeepCloneable
      • IDeepCloneable<T>
      • IImage
      • IImageInfo
      • Image
      • Image<TPixel>
      • ImageExtensions
      • ImageFormatException
      • ImageFrame
      • ImageFrame<TPixel>
      • ImageFrameCollection
      • ImageFrameCollection<TPixel>
      • ImageInfoExtensions
      • ImageProcessingException
      • IndexedImageFrame<TPixel>
      • InvalidImageContentException
      • Matrix3x2Extensions
      • MetadataExtensions
      • Number
      • Point
      • PointF
      • Rational
      • ReadOrigin
      • Rectangle
      • RectangleF
      • SignedRational
      • Size
      • SizeF
      • UnknownImageFormatException
    • SixLabors.ImageSharp.Advanced
      • AdvancedImageExtensions
      • IImageVisitor
      • IImageVisitorAsync
      • IRowIntervalOperation
      • IRowIntervalOperation<TBuffer>
      • IRowOperation
      • IRowOperation<TBuffer>
      • ParallelExecutionSettings
      • ParallelRowIterator
    • SixLabors.ImageSharp.ColorSpaces
      • CieLab
      • CieLch
      • CieLchuv
      • CieLuv
      • CieXyy
      • CieXyz
      • Cmyk
      • Hsl
      • Hsv
      • HunterLab
      • Illuminants
      • LinearRgb
      • Lms
      • Rgb
      • RgbWorkingSpaces
      • YCbCr
    • SixLabors.ImageSharp.ColorSpaces.Companding
      • GammaCompanding
      • LCompanding
      • Rec2020Companding
      • Rec709Companding
      • SRgbCompanding
    • SixLabors.ImageSharp.ColorSpaces.Conversion
      • CieXyChromaticityCoordinates
      • ColorSpaceConverter
      • ColorSpaceConverterOptions
      • GammaWorkingSpace
      • IChromaticAdaptation
      • LmsAdaptationMatrix
      • LWorkingSpace
      • Rec2020WorkingSpace
      • Rec709WorkingSpace
      • RgbPrimariesChromaticityCoordinates
      • RgbWorkingSpace
      • SRgbWorkingSpace
      • VonKriesChromaticAdaptation
    • SixLabors.ImageSharp.Formats
      • IImageDecoder
      • IImageEncoder
      • IImageFormat
      • IImageFormat<TFormatMetadata, TFormatFrameMetadata>
      • IImageFormat<TFormatMetadata>
      • IImageFormatDetector
      • IImageInfoDetector
      • ImageFormatManager
      • PixelTypeInfo
    • SixLabors.ImageSharp.Formats.Bmp
      • BmpBitsPerPixel
      • BmpConfigurationModule
      • BmpDecoder
      • BmpEncoder
      • BmpFileMarkerType
      • BmpFormat
      • BmpImageFormatDetector
      • BmpInfoHeaderType
      • BmpMetadata
      • RleSkippedPixelHandling
    • SixLabors.ImageSharp.Formats.Gif
      • GifColorTableMode
      • GifConfigurationModule
      • GifDecoder
      • GifDisposalMethod
      • GifEncoder
      • GifFormat
      • GifFrameMetadata
      • GifImageFormatDetector
      • GifMetadata
      • IGifExtension
    • SixLabors.ImageSharp.Formats.Jpeg
      • JpegConfigurationModule
      • JpegDecoder
      • JpegEncoder
      • JpegFormat
      • JpegImageFormatDetector
      • JpegMetadata
      • JpegSubsample
    • SixLabors.ImageSharp.Formats.Png
      • PngBitDepth
      • PngChunkFilter
      • PngColorType
      • PngCompressionLevel
      • PngConfigurationModule
      • PngDecoder
      • PngEncoder
      • PngFilterMethod
      • PngFormat
      • PngImageFormatDetector
      • PngInterlaceMode
      • PngMetadata
      • PngTextData
      • PngTransparentColorMode
    • SixLabors.ImageSharp.Formats.Tga
      • TgaBitsPerPixel
      • TgaCompression
      • TgaConfigurationModule
      • TgaDecoder
      • TgaEncoder
      • TgaFormat
      • TgaImageFormatDetector
      • TgaImageType
      • TgaImageTypeExtensions
      • TgaMetadata
    • SixLabors.ImageSharp.Memory
      • AllocationOptions
      • ArrayPoolMemoryAllocator
      • Buffer2D<T>
      • Buffer2DExtensions
      • Buffer2DRegion<T>
      • IManagedByteBuffer
      • IMemoryGroup<T>
      • InvalidMemoryOperationException
      • MemoryAllocator
      • MemoryAllocatorExtensions
      • RowInterval
      • SimpleGcMemoryAllocator
    • SixLabors.ImageSharp.Metadata
      • FrameDecodingMode
      • ImageFrameMetadata
      • ImageMetadata
      • PixelResolutionUnit
    • SixLabors.ImageSharp.Metadata.Profiles.Exif
      • ExifDataType
      • ExifParts
      • ExifProfile
      • ExifTag
      • ExifTag<TValueType>
      • IExifValue
      • IExifValue<TValueType>
    • SixLabors.ImageSharp.Metadata.Profiles.Icc
      • IccColorSpaceType
      • IccDeviceAttribute
      • IccPrimaryPlatformType
      • IccProfile
      • IccProfileClass
      • IccProfileFlag
      • IccProfileHeader
      • IccProfileId
      • IccProfileTag
      • IccRenderingIntent
      • IccTagDataEntry
      • IccTypeSignature
      • IccVersion
      • InvalidIccProfileException
    • SixLabors.ImageSharp.Metadata.Profiles.Iptc
      • IptcProfile
      • IptcTag
      • IptcTagExtensions
      • IptcValue
    • SixLabors.ImageSharp.PixelFormats
      • A8
      • Argb32
      • Bgr24
      • Bgr565
      • Bgra32
      • Bgra4444
      • Bgra5551
      • Byte4
      • HalfSingle
      • HalfVector2
      • HalfVector4
      • IPackedVector<TPacked>
      • IPixel
      • IPixel<TSelf>
      • L16
      • L8
      • La16
      • La32
      • NormalizedByte2
      • NormalizedByte4
      • NormalizedShort2
      • NormalizedShort4
      • PixelAlphaCompositionMode
      • PixelAlphaRepresentation
      • PixelBlender<TPixel>
      • PixelColorBlendingMode
      • PixelConversionModifiers
      • PixelOperations<TPixel>
      • Rg32
      • Rgb24
      • Rgb48
      • Rgba1010102
      • Rgba32
      • Rgba64
      • RgbaVector
      • Short2
      • Short4
    • SixLabors.ImageSharp.Processing
      • AdaptiveThresholdExtensions
      • AffineTransformBuilder
      • AnchorPositionMode
      • AutoOrientExtensions
      • BackgroundColorExtensions
      • BinaryDitherExtensions
      • BinaryThresholdExtensions
      • BinaryThresholdMode
      • BlackWhiteExtensions
      • BokehBlurExtensions
      • BoxBlurExtensions
      • BrightnessExtensions
      • ColorBlindnessExtensions
      • ColorBlindnessMode
      • ContrastExtensions
      • CropExtensions
      • DetectEdgesExtensions
      • DitherExtensions
      • DrawImageExtensions
      • EntropyCropExtensions
      • FilterExtensions
      • FlipExtensions
      • FlipMode
      • GaussianBlurExtensions
      • GaussianSharpenExtensions
      • GlowExtensions
      • GrayscaleExtensions
      • GrayscaleMode
      • HistogramEqualizationExtensions
      • HueExtensions
      • IImageProcessingContext
      • InvertExtensions
      • KnownDitherings
      • KnownEdgeDetectorKernels
      • KnownFilterMatrices
      • KnownQuantizers
      • KnownResamplers
      • KodachromeExtensions
      • LightnessExtensions
      • LomographExtensions
      • OilPaintExtensions
      • OpacityExtensions
      • PadExtensions
      • PixelateExtensions
      • PixelRowDelegateExtensions
      • PixelRowOperation
      • PixelRowOperation<T>
      • PolaroidExtensions
      • ProcessingExtensions
      • ProjectiveTransformBuilder
      • QuantizeExtensions
      • ResizeExtensions
      • ResizeMode
      • ResizeOptions
      • RotateExtensions
      • RotateFlipExtensions
      • RotateMode
      • SaturateExtensions
      • SepiaExtensions
      • SkewExtensions
      • TaperCorner
      • TaperSide
      • TransformExtensions
      • VignetteExtensions
    • SixLabors.ImageSharp.Processing.Extensions.Transforms
      • SwizzleExtensions
    • SixLabors.ImageSharp.Processing.Processors
      • CloningImageProcessor
      • CloningImageProcessor<TPixel>
      • ICloningImageProcessor
      • ICloningImageProcessor<TPixel>
      • IImageProcessor
      • IImageProcessor<TPixel>
      • ImageProcessor<TPixel>
    • SixLabors.ImageSharp.Processing.Processors.Binarization
      • AdaptiveThresholdProcessor
      • BinaryThresholdProcessor
    • SixLabors.ImageSharp.Processing.Processors.Convolution
      • BokehBlurProcessor
      • BoxBlurProcessor
      • EdgeDetector2DKernel
      • EdgeDetector2DProcessor
      • EdgeDetectorCompassKernel
      • EdgeDetectorCompassProcessor
      • EdgeDetectorKernel
      • EdgeDetectorProcessor
      • GaussianBlurProcessor
      • GaussianSharpenProcessor
    • SixLabors.ImageSharp.Processing.Processors.Dithering
      • ErrorDither
      • IDither
      • IPaletteDitherImageProcessor<TPixel>
      • OrderedDither
      • PaletteDitherProcessor
    • SixLabors.ImageSharp.Processing.Processors.Drawing
      • DrawImageProcessor
    • SixLabors.ImageSharp.Processing.Processors.Effects
      • IPixelRowDelegate
      • OilPaintingProcessor
      • PixelateProcessor
    • SixLabors.ImageSharp.Processing.Processors.Filters
      • AchromatomalyProcessor
      • AchromatopsiaProcessor
      • BlackWhiteProcessor
      • BrightnessProcessor
      • ContrastProcessor
      • DeuteranomalyProcessor
      • DeuteranopiaProcessor
      • FilterProcessor
      • GrayscaleBt601Processor
      • GrayscaleBt709Processor
      • HueProcessor
      • InvertProcessor
      • KodachromeProcessor
      • LightnessProcessor
      • LomographProcessor
      • OpacityProcessor
      • PolaroidProcessor
      • ProtanomalyProcessor
      • ProtanopiaProcessor
      • SaturateProcessor
      • SepiaProcessor
      • TritanomalyProcessor
      • TritanopiaProcessor
    • SixLabors.ImageSharp.Processing.Processors.Normalization
      • AdaptiveHistogramEqualizationProcessor
      • AdaptiveHistogramEqualizationSlidingWindowProcessor
      • GlobalHistogramEqualizationProcessor
      • HistogramEqualizationMethod
      • HistogramEqualizationOptions
      • HistogramEqualizationProcessor
    • SixLabors.ImageSharp.Processing.Processors.Overlays
      • BackgroundColorProcessor
      • GlowProcessor
      • VignetteProcessor
    • SixLabors.ImageSharp.Processing.Processors.Quantization
      • DefaultPixelSamplingStrategy
      • ExtensivePixelSamplingStrategy
      • IPixelSamplingStrategy
      • IQuantizer
      • IQuantizer<TPixel>
      • OctreeQuantizer
      • OctreeQuantizer<TPixel>
      • PaletteQuantizer
      • QuantizeProcessor
      • QuantizerConstants
      • QuantizerOptions
      • QuantizerUtilities
      • WebSafePaletteQuantizer
      • WernerPaletteQuantizer
      • WuQuantizer
    • SixLabors.ImageSharp.Processing.Processors.Transforms
      • AffineTransformProcessor
      • AutoOrientProcessor
      • BicubicResampler
      • BoxResampler
      • CropProcessor
      • CubicResampler
      • DegenerateTransformException
      • EntropyCropProcessor
      • FlipProcessor
      • IResampler
      • IResamplingTransformImageProcessor<TPixel>
      • ISwizzler
      • LanczosResampler
      • NearestNeighborResampler
      • ProjectiveTransformProcessor
      • ResizeProcessor
      • RotateProcessor
      • SkewProcessor
      • SwizzleProcessor<TSwizzler>
      • TriangleResampler
      • WelchResampler

    Class ArrayPoolMemoryAllocator

    Contains SixLabors.ImageSharp.Memory.ArrayPoolMemoryAllocator.Buffer`1 and SixLabors.ImageSharp.Memory.ArrayPoolMemoryAllocator.ManagedByteBuffer.

    Inheritance
    Object
    MemoryAllocator
    ArrayPoolMemoryAllocator
    Inherited Members
    Object.Equals(Object)
    Object.Equals(Object, Object)
    Object.GetHashCode()
    Object.GetType()
    Object.MemberwiseClone()
    Object.ReferenceEquals(Object, Object)
    Object.ToString()
    Namespace: SixLabors.ImageSharp.Memory
    Assembly: SixLabors.ImageSharp.dll
    Syntax
    public sealed class ArrayPoolMemoryAllocator : MemoryAllocator

    Constructors

    | Improve this Doc View Source

    ArrayPoolMemoryAllocator()

    Initializes a new instance of the ArrayPoolMemoryAllocator class.

    Declaration
    public ArrayPoolMemoryAllocator()
    | Improve this Doc View Source

    ArrayPoolMemoryAllocator(Int32)

    Initializes a new instance of the ArrayPoolMemoryAllocator class.

    Declaration
    public ArrayPoolMemoryAllocator(int maxPoolSizeInBytes)
    Parameters
    Type Name Description
    Int32 maxPoolSizeInBytes

    The maximum size of pooled arrays. Arrays over the thershold are gonna be always allocated.

    | Improve this Doc View Source

    ArrayPoolMemoryAllocator(Int32, Int32)

    Initializes a new instance of the ArrayPoolMemoryAllocator class.

    Declaration
    public ArrayPoolMemoryAllocator(int maxPoolSizeInBytes, int poolSelectorThresholdInBytes)
    Parameters
    Type Name Description
    Int32 maxPoolSizeInBytes

    The maximum size of pooled arrays. Arrays over the thershold are gonna be always allocated.

    Int32 poolSelectorThresholdInBytes

    Arrays over this threshold will be pooled in SixLabors.ImageSharp.Memory.ArrayPoolMemoryAllocator.largeArrayPool which has less buckets for memory safety.

    | Improve this Doc View Source

    ArrayPoolMemoryAllocator(Int32, Int32, Int32, Int32)

    Initializes a new instance of the ArrayPoolMemoryAllocator class.

    Declaration
    public ArrayPoolMemoryAllocator(int maxPoolSizeInBytes, int poolSelectorThresholdInBytes, int maxArraysPerBucketLargePool, int maxArraysPerBucketNormalPool)
    Parameters
    Type Name Description
    Int32 maxPoolSizeInBytes

    The maximum size of pooled arrays. Arrays over the thershold are gonna be always allocated.

    Int32 poolSelectorThresholdInBytes

    The threshold to pool arrays in SixLabors.ImageSharp.Memory.ArrayPoolMemoryAllocator.largeArrayPool which has less buckets for memory safety.

    Int32 maxArraysPerBucketLargePool

    Max arrays per bucket for the large array pool.

    Int32 maxArraysPerBucketNormalPool

    Max arrays per bucket for the normal array pool.

    | Improve this Doc View Source

    ArrayPoolMemoryAllocator(Int32, Int32, Int32, Int32, Int32)

    Initializes a new instance of the ArrayPoolMemoryAllocator class.

    Declaration
    public ArrayPoolMemoryAllocator(int maxPoolSizeInBytes, int poolSelectorThresholdInBytes, int maxArraysPerBucketLargePool, int maxArraysPerBucketNormalPool, int bufferCapacityInBytes)
    Parameters
    Type Name Description
    Int32 maxPoolSizeInBytes

    The maximum size of pooled arrays. Arrays over the thershold are gonna be always allocated.

    Int32 poolSelectorThresholdInBytes

    The threshold to pool arrays in SixLabors.ImageSharp.Memory.ArrayPoolMemoryAllocator.largeArrayPool which has less buckets for memory safety.

    Int32 maxArraysPerBucketLargePool

    Max arrays per bucket for the large array pool.

    Int32 maxArraysPerBucketNormalPool

    Max arrays per bucket for the normal array pool.

    Int32 bufferCapacityInBytes

    The length of the largest contiguous buffer that can be handled by this allocator instance.

    Properties

    | Improve this Doc View Source

    BufferCapacityInBytes

    Gets the length of the largest contiguous buffer that can be handled by this allocator instance.

    Declaration
    public int BufferCapacityInBytes { get; }
    Property Value
    Type Description
    Int32
    | Improve this Doc View Source

    MaxPoolSizeInBytes

    Gets the maximum size of pooled arrays in bytes.

    Declaration
    public int MaxPoolSizeInBytes { get; }
    Property Value
    Type Description
    Int32
    | Improve this Doc View Source

    PoolSelectorThresholdInBytes

    Gets the threshold to pool arrays in SixLabors.ImageSharp.Memory.ArrayPoolMemoryAllocator.largeArrayPool which has less buckets for memory safety.

    Declaration
    public int PoolSelectorThresholdInBytes { get; }
    Property Value
    Type Description
    Int32

    Methods

    | Improve this Doc View Source

    Allocate<T>(Int32, AllocationOptions)

    Allocates an IMemoryOwner<T>, holding a Memory<T> of length length.

    Declaration
    public override IMemoryOwner<T> Allocate<T>(int length, AllocationOptions options = AllocationOptions.None)
        where T : struct
    Parameters
    Type Name Description
    Int32 length

    Size of the buffer to allocate.

    AllocationOptions options

    The allocation options.

    Returns
    Type Description
    IMemoryOwner<T>

    A buffer of values of type T.

    Type Parameters
    Name Description
    T

    Type of the data stored in the buffer.

    Overrides
    MemoryAllocator.Allocate<T>(Int32, AllocationOptions)
    Exceptions
    Type Condition
    ArgumentOutOfRangeException

    When length is zero or negative.

    InvalidMemoryOperationException

    When length is over the capacity of the allocator.

    | Improve this Doc View Source

    AllocateManagedByteBuffer(Int32, AllocationOptions)

    Allocates an IManagedByteBuffer.

    Declaration
    public override IManagedByteBuffer AllocateManagedByteBuffer(int length, AllocationOptions options = AllocationOptions.None)
    Parameters
    Type Name Description
    Int32 length

    The requested buffer length.

    AllocationOptions options

    The allocation options.

    Returns
    Type Description
    IManagedByteBuffer

    The IManagedByteBuffer.

    Overrides
    MemoryAllocator.AllocateManagedByteBuffer(Int32, AllocationOptions)
    Exceptions
    Type Condition
    ArgumentOutOfRangeException

    When length is zero or negative.

    InvalidMemoryOperationException

    When length is over the capacity of the allocator.

    | Improve this Doc View Source

    CreateDefault()

    This is the default. Should be good for most use cases.

    Declaration
    public static ArrayPoolMemoryAllocator CreateDefault()
    Returns
    Type Description
    ArrayPoolMemoryAllocator

    The memory manager.

    | Improve this Doc View Source

    CreateWithAggressivePooling()

    For environments where memory capabilities are not an issue, the maximum amount of array requests are pooled which results in optimal throughput.

    Declaration
    public static ArrayPoolMemoryAllocator CreateWithAggressivePooling()
    Returns
    Type Description
    ArrayPoolMemoryAllocator

    The memory manager.

    | Improve this Doc View Source

    CreateWithMinimalPooling()

    For environments with very limited memory capabilities, only small buffers like image rows are pooled.

    Declaration
    public static ArrayPoolMemoryAllocator CreateWithMinimalPooling()
    Returns
    Type Description
    ArrayPoolMemoryAllocator

    The memory manager.

    | Improve this Doc View Source

    CreateWithModeratePooling()

    For environments with limited memory capabilities, only small array requests are pooled, which can result in reduced throughput.

    Declaration
    public static ArrayPoolMemoryAllocator CreateWithModeratePooling()
    Returns
    Type Description
    ArrayPoolMemoryAllocator

    The memory manager.

    | Improve this Doc View Source

    GetBufferCapacityInBytes()

    Gets the length of the largest contiguous buffer that can be handled by this allocator instance in bytes.

    Declaration
    protected override int GetBufferCapacityInBytes()
    Returns
    Type Description
    Int32

    The length of the largest contiguous buffer that can be handled by this allocator instance.

    Overrides
    MemoryAllocator.GetBufferCapacityInBytes()
    | Improve this Doc View Source

    ReleaseRetainedResources()

    Releases all retained resources not being in use. Eg: by resetting array pools and letting GC to free the arrays.

    Declaration
    public override void ReleaseRetainedResources()
    Overrides
    MemoryAllocator.ReleaseRetainedResources()

    Extension Methods

    MemoryAllocatorExtensions.Allocate2D<T>(MemoryAllocator, Int32, Int32, AllocationOptions)
    MemoryAllocatorExtensions.Allocate2D<T>(MemoryAllocator, Size, AllocationOptions)
    • Improve this Doc
    • View Source
    In This Article
    • Constructors
      • ArrayPoolMemoryAllocator()
      • ArrayPoolMemoryAllocator(Int32)
      • ArrayPoolMemoryAllocator(Int32, Int32)
      • ArrayPoolMemoryAllocator(Int32, Int32, Int32, Int32)
      • ArrayPoolMemoryAllocator(Int32, Int32, Int32, Int32, Int32)
    • Properties
      • BufferCapacityInBytes
      • MaxPoolSizeInBytes
      • PoolSelectorThresholdInBytes
    • Methods
      • Allocate<T>(Int32, AllocationOptions)
      • AllocateManagedByteBuffer(Int32, AllocationOptions)
      • CreateDefault()
      • CreateWithAggressivePooling()
      • CreateWithMinimalPooling()
      • CreateWithModeratePooling()
      • GetBufferCapacityInBytes()
      • ReleaseRetainedResources()
    • Extension Methods
    Back to top Generated by DocFX