2016-06-17 4 views
0

Данные, подлежащие сжатию, представляют собой двоичные файлы erlang, которые представляют иерархию компании, имеют списки отделов, списки подразделений каждого отдела, списки сотрудников компании, списки сотрудников/менеджеров каждого отдела, а также информацию каждого сотрудника/отдела. Каждый отдел/сотрудник/менеджер представлен uuid (16 байт). Каждый uuid может повторяться несколько раз в данных. Данные могут быть большими (компании с сотнями отделов и тысячами сотрудников), и их нужно передавать по сети.Как использовать erlang zlib для сжатия двоичных данных с повторяющимися uuids?

Предположим, что у нас есть списки uuids сотрудников/менеджеров/отделов.

  1. Как использовать erlang zlib для оптимального сжатия данных списками uuids?
  2. Любой лучший выбор, чем zlib в этом прецеденте?

ответ

0

Если объект уже является объектом Erlang, используйте только term_to_binary(Term, [{compressed, 9}]). Это приведет к сериализации термина Erlang в двоичный файл, который вы можете позже десериализовать через binary_to_term(Bin). Уровень 9 представляет уровень сжатия. Имейте в виду, что сжатие BIF довольно медленное, поэтому определите, для вашего набора данных лучше.

+0

Данные, подлежащие сжатию, уже имеют тип binary(). Сжатые данные будут отправлены на мобильное устройство, где binary_to_term() может быть недоступно. На самом деле я хочу знать, как сжимать данные более эффективно, когда многие повторяющиеся фрагменты данных уже известны. – user21916

 Смежные вопросы

  • Нет связанных вопросов^_^