赙浦 发表于 2025-9-28 22:28:22

ArrayPool.Shared解说

ArrayPool简介

.NET 中频繁创建和销毁数组的情况下会导致垃圾回收器出现严重的内存压力,ArrayPool 通过池化手段有效地降低了数组的分配和垃圾回收器的回收压力,同时 ArrayPool 也是 MemoryPool 和 PipeWriter、PipeReader 的底板。
ArrayPool.Shared 是 ArrayPool 的一种实现,它设计成静态共享以供全体共同使用。在实际应用中, Shared 实例几乎承载了全部的 ArrayPool 调用。
Shared实例的Rent

static void RentAndReturn(int size)
{
    var pool = ArrayPool<byte>.Shared;
    var array = pool.Rent(size);

    // 在这里使用 array

    pool.Return(array);
}其中输入的 size 和 Rent 得到 array.Length的关系如下:
var index = SelectBucketIndex(size);var arrayLenth = GetMaxSizeForBucket(index);static int SelectBucketIndex(int size){   return BitOperations. Log2((uint)((size - 1) | 0xF)) - 3;             }static int GetMaxSizeForBucket(int bucketIndex){   return 16

匣卒 发表于 2025-10-31 03:15:04

喜欢鼓捣这些软件,现在用得少,谢谢分享!

炀餮氢 发表于 2025-11-1 12:35:22

分享、互助 让互联网精神温暖你我

皆炳 发表于 2025-11-24 11:31:22

不错,里面软件多更新就更好了

任静柔 发表于 5 天前

谢谢楼主提供!

邹语彤 发表于 前天 02:09

新版吗?好像是停更了吧。
页: [1]
查看完整版本: ArrayPool.Shared解说