Re: systemd
Alexey Shrub -> debian-russian@lists.debian.org @ Fri, 13 Nov 2015 22:43:53 +0300:
>> пожалуйста подробнее про оверхед в текстовых протоколах, а то я видимо
>> что-то пропустил
AS> Бинарный протокол должен быть экономнее по памяти, например число будет одним
AS> байтом представлено вместо числа байт равному числу цифр, имена полей будут
AS> кодами вместо человекопонятных наименований.
AS> А если протокол ещё и с фиксированным размером полей (чего в текстовых
AS> протоколах обычно не делают), то и парсинг его будет быстрее не нужно ходить
AS> по байтам и смотреть не конец ли это строки - сразу режем кусок нужного
AS> размера.
Тут-то и приезжает оверхед. Есть у нас такое на работе. Поле - union
из int (32 bit) и double, итого 8 байтов, а передается там в большинстве
случаев число из первой сотни (если в человеко-читаемом виде, то три
байта), и в доброй половине - вообще один бит.
А строку при этом передать нельзя, потому что размер фиксирован.
AS> В принципе бинарный протокол даже с полями переменной длинны должен
AS> быстрее парсится, ибо обычно там есть размер поля (про TLV уже
AS> упоминали тут), а значит не надо ползти по байтам и искать конец
AS> значения.
"Преждевременная оптимизация - корень всех зол".
Reply to: