Какие современные (.NET 6+) абстракции в C# подходят для шаблонов производитель-потребитель больших потоков данных в памC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Какие современные (.NET 6+) абстракции в C# подходят для шаблонов производитель-потребитель больших потоков данных в пам

Сообщение Anonymous »

Я ищу встроенную, современную и высокопроизводительную (т. е. минимизирующую выделение, копирование и т. д.) абстракцию, позволяющую использовать шаблоны производитель-потребитель больших потоков данных (т. е. миллионов точек данных) в памяти. в С#. Данные будут создаваться и потребляться пакетами (то есть одновременно большими массивами точек, а не одной точкой).
В .NET уже существует несколько подобных абстракций для обработки связанных сценариев, но они кажется, не очень хорошо соответствует моим требованиям:
  • Код: Выделить всё

    System.Threading.Channel.Channel. Это было бы уместно, если бы оно могло поддерживать пакетное чтение и запись (например, если ReadAsync()
    может возвращать массив T и т. д.). В нынешнем виде он может записывать и читать только одну точку одновременно, что будет неэффективно для больших потоков данных.
  • Код: Выделить всё

    System.IO.Pipelines.Pipe. Кажется, это подходящий класс, за исключением того, что он может обрабатывать только потоки байтов. Мне нужно что-то, что поддерживает дженерики и может обрабатывать потоки произвольных объектов.
    
    [*]System.Buffers.ReadOnlySequence. Я не понял, как эта штука работает, но выглядит актуально...
    
    [*]Прокатываю свою собственную с помощью Span, Memory
    и все низкоуровневое содержимое. Это то, чего я пытаюсь избежать, потому что это кажется обычным сценарием и для него уже должно быть что-то OOTB.
Будем очень признательны за любые предложения!

Подробнее здесь: https://stackoverflow.com/questions/792 ... r-consumer
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»