SkillAgentSearch skills...

RecyclableBuffer

基于 ArrayPool<byte> 实现的单内存片段和多内存片段可复用的缓冲区

Install / Use

/learn @xljiulang/RecyclableBuffer
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

RecyclableBuffer

基于 ArrayPool<byte> 实现的单内存片段和多内存片段可复用的缓冲区 。

Nuget

RecyclableBuffer

Benchmark

在单次复用、并行复用和异步并行复用三种场景中 RecyclableBuffer 的 Benchmark 成绩 都略微优于 RecyclableMemoryStream

使用 SingleSegmentBufferWriter

IBufferWriter<byte> 接口

using var bufferWriter = new SingleSegmentBufferWriter(1024);

// 使用IBufferWriter<byte>接口写入一些数据
var span = bufferWriter.GetSpan(sizeof(int));
BinaryPrimitives.WriteInt32BigEndian(span, 42);
bufferWriter.Advance(sizeof(int));

// 获取已写入的数据跨度
var sequence = bufferWriter.WrittenSpan;

Stream 接口

using var bufferWriter = new SingleSegmentBufferWriter(1024);

// 使用Stream接口写入
var writableStream = bufferWriter.AsWritableStream();
await JsonSerializer.SerializeAsync(writableStream, users);

// 获取已写入的数据跨度
var sequence = bufferWriter.WrittenSpan;

使用 MultipleSegmentBufferWriter

IBufferWriter<byte> 接口

using var bufferWriter = new MultipleSegmentBufferWriter();

// 使用IBufferWriter<byte>接口写入一些数据
var span = bufferWriter.GetSpan(sizeof(int));
BinaryPrimitives.WriteInt32BigEndian(span, 42);
bufferWriter.Advance(sizeof(int));

// 获取已写入的数据序列
var sequence = bufferWriter.WrittenSequence;

Stream 接口

using var bufferWriter = new MultipleSegmentBufferWriter();

// 使用Stream接口写入
var writableStream = bufferWriter.AsWritableStream();
await JsonSerializer.SerializeAsync(writableStream, users);

// 获取已写入的数据序列
var sequence = bufferWriter.WrittenSequence;

View on GitHub
GitHub Stars5
CategoryDevelopment
Updated5mo ago
Forks1

Languages

C#

Security Score

67/100

Audited on Oct 13, 2025

No findings