Sharing .NET-experience: Streams pooling by using Microsoft.IO.RecyclableMemoryStream

от автора

The pooling is the good practice to reuse created resources instead of a new allocation. I found Microsoft.IO.RecyclableMemoryStream package for using memory streams pooling during logging HTTP-requests in my server.

RecyclableMemoryStreamManager _recyclableMemoryStreamManager = new RecyclableMemoryStreamManager(); using var memoryStream = _recyclableMemoryStreamManager.GetStream(); bodyStream.Seek(0, SeekOrigin.Begin); bodyStream.CopyTo(memoryStream); memoryStream.Seek(0, SeekOrigin.Begin); string responseBody;  const int readChunkBufferLength = 4096; using var textWriter = new StringWriter();  using (var streamReader = new StreamReader(memoryStream)) {     var readChunk = new char[readChunkBufferLength];     int readChunkLength;     do     {         readChunkLength = streamReader.ReadBlock(readChunk,         0,         readChunkBufferLength);         textWriter.Write(readChunk, 0, readChunkLength);     }     while (readChunkLength > 0); } bodyStream.Seek(0, SeekOrigin.Begin); responseBody = textWriter.ToString();


ссылка на оригинал статьи https://habr.com/ru/articles/697570/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *