Проектирование сжатых сетевых потоков

#c# #stream #compression

#c# #поток #сжатие

Вопрос:

Я ищу несколько быстрых реализаций потоков с низкой задержкой для C # / .Net, и мне было бы интересно, что там есть. Эти потоки будут предоставлять текущие рыночные данные, поэтому меня интересует низкая задержка, а также умеренно высокое сжатие, и данные будут передаваться в потоке TCP. Какие параметры доступны для сжатия потока TCP?

Ответ №1:

Вы могли бы сериализовать свои данные с помощью Protobuf.net, который уменьшает размер за счет плотного кодирования.

Как говорит Марк, вероятно, лучше использовать необработанный сокет.

Комментарии:

1. Технически, это просто плотно закодировано — не «сжато» как таковое. Но я поддерживаю вашу рекомендацию; p За исключением того, что я, вероятно, использовал бы необработанный сокет в представленном сценарии.

2. (под этим я подразумеваю: protobuf-net на сокете, а не protobuf-net через WCF; p)

3. Важна плотная кодировка, давайте предположим, что я уже уплотнил свои двоичные представления. Что бы вы сделали, чтобы еще больше сжать свои данные?

4. @Marc Gravell: lol извините, у меня это было открыто в двух окнах. Представил частично обновленный вариант 🙂

5. @Superman буферы протокола Google в значительной степени таковы; так что, если вы уверены в своем внутреннем представлении, это может быть не для вас. Для большинства людей это практичный способ добиться плотного потока без особых усилий.