[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: