EyeAuras Docs EyeAuras Docs
EyeAuras Docs EyeAuras Docs
DocFX + Singulink = ♥

Search Results for

    Class SharedArrayPool<T>

    https://medium.com/@epeshk/the-big-performance-difference-between-arraypools-in-net-b25c9fc5e31d

    Inheritance
    object
    DisposableReactiveObject
    LazyReactiveObject<SharedArrayPool<T>>
    SharedArrayPool<T>
    Implements
    IDisposable
    INotifyPropertyChanged
    IArrayPool<T>
    Inherited Members
    LazyReactiveObject<SharedArrayPool<T>>.Instance
    object.GetType()
    object.ToString()
    object.Equals(object)
    object.Equals(object, object)
    object.ReferenceEquals(object, object)
    object.GetHashCode()
    Namespace: PoeShared.Services
    Assembly: PoeShared.dll
    Syntax
    public sealed class SharedArrayPool<T> : LazyReactiveObject<SharedArrayPool<T>>, IDisposable, INotifyPropertyChanged, IArrayPool<T>
    Type Parameters
    Name Description
    T
    Remarks

    TlsOverPerCoreLockedStacksArrayPool max array size is only 1MB, meaning that it does not work for large arrays, which is reasonable considering it uses threadlocal to store data

    1. Using "large" pool does not really work due to trimming
    2. It makes sense to implement byte/char pool which will repurpose same memory buffers
    3. Implement custom array pool for large objects to avoid trimming issue (maybe one of these? https://github.com/epeshk/arraypool-examples/blob/master/ArrayPoolTests/BoundedConcurrentQueue.cs)
    4. Need thorough testing before doing anything as there are way too many nuances, for now Shared pool should work for most cases
    5. Reading 30mb of JSON is way too expensive, this must be addressed! Very high chance that without that problem every other change will not be needed

    Constructors

    Name Description
    SharedArrayPool()

    Methods

    Name Description
    Rent(int)
    Return(T[])

    Extension Methods

    ReactiveObjectExtensions.Listen<TContext, TItem>(TContext, Expression<Func<TContext, IObservableList<TItem>>>)
    ReactiveObjectExtensions.Listen<TContext, TOut>(TContext, Expression<Func<TContext, TOut>>)
    ReactiveObjectExtensions.Listen<TContext, TOut1, TOut2>(TContext, Expression<Func<TContext, TOut1>>, Expression<Func<TContext, TOut2>>)
    ReactiveObjectExtensions.Listen<TContext, TOut1, TOut2, TOut3>(TContext, Expression<Func<TContext, TOut1>>, Expression<Func<TContext, TOut2>>, Expression<Func<TContext, TOut3>>)
    ReactiveObjectExtensions.Listen<TContext, TOut1, TOut2, TOut3, TOut4>(TContext, Expression<Func<TContext, TOut1>>, Expression<Func<TContext, TOut2>>, Expression<Func<TContext, TOut3>>, Expression<Func<TContext, TOut4>>)
    ObjectExtensions.AddTo<TItem, TCollection>(TItem, ISourceList<TCollection>)
    ObjectExtensions.AddTo<TItem, TCollection>(TItem, ICollection<TCollection>)
    ObjectExtensions.CloneJson<T>(T)
    ObjectExtensions.CopyPropertiesTo<TSource, TTarget>(TSource, TTarget)
    ObjectExtensions.DumpToTextRaw<T>(T)
    ObjectExtensions.DumpToText<T>(T)
    ObjectExtensions.Dump<T>(T)
    ObjectExtensions.EvalOrDefault<T, TValue>(T, Func<T, TValue>, TValue)
    ObjectExtensions.Eval<T, TValue>(T, Func<T, TValue>)
    ObjectExtensions.GetPropertyAccessor<TSource, TValue>(TSource, Expression<Func<TSource, TValue>>)
    ObjectExtensions.InsertTo<TItem, TCollection>(TItem, IList<TCollection>, int)
    ObjectExtensions.ToJson<T>(T)
    ObjectExtensions.ToStringSafe<T>(T)
    ObjectExtensions.TransferPropertiesTo<TSource, TTarget>(TSource, TTarget, params string[])
    XDocumentExtensions.AddTo<T>(T, XContainer)
    ObjectExtensions.GetPropertyAccessor<TValue>(object, string)
    ObjectReflectionExtensions.GetPropertyTypeOrDefault(object, string)
    ObjectReflectionExtensions.GetPropertyValue<T>(object, string)
    ObjectReflectionExtensions.SetPropertyValue<T>(object, string, T)
    © Xab3r. All rights reserved.