On Пт, ноя 13, 2015 в 9:59 , Dmitry E. Oboukhov
<un...@debian.org> wrote:
пожалуйста подробнее про оверхед в
текстовых протоколах, а то я видимо
что-то пропустил
Бинарный протокол должен быть
экономнее по памяти, например число
будет одним байтом представлено
вместо числа байт равному числу цифр,
имена полей будут кодами вместо
человекопонятных наименований.
А если протокол ещё и с фиксированным
размером полей (чего в текстовых
протоколах обычно не делают), то и
парсинг его будет быстрее не нужно
ходить по байтам и смотреть не конец ли
это строки - сразу режем кусок нужного
размера. В принципе бинарный протокол
даже с полями переменной длинны должен
быстрее парсится, ибо обычно там есть
размер поля (про TLV уже упоминали тут), а
значит не надо ползти по байтам и
искать конец значения.
Но как я уже говорил не стоит
зацикливаться на бинарности
протокола, это не ключевая и не
архитектурная проблема, сделайте форк
systemd, замените протокол на текстовый и
предложите сообществу, я даже
подозреваю что для этого надо внести
изменения в одну либу.
А разговоры о связи текстовых
протоколов со свободой не совсем
уместны, текстовый протокол без
документации тоже может быть
непонятным, поэтому важно наличие
открытой спецификации, а реализация
вторична.
Момент с парсингом бинарного
протокола на разных типах машин может
быть проблемой, но как-то видимо
решается, tcp вроде работает.
Касательно бинарного лога тут уже
сказали что это нужно для
индексирования, а значит и ускорения
выборок, добавлю что идущая в
комплекте тулза умеет полезные вещи
типа выбрать лог за период времени,
грепом такого нормально не сделаешь