如何使用erlang zlib用重复的uuids压缩二进制数据?

时间:2016-06-17 14:44:29

标签: erlang zlib compression

要压缩的数据是erlang二进制文件,它代表公司的层次结构,它包含部门列表,每个部门的子部门列表,公司员工列表,每个部门的员工/经理列表,以及每个员工/部门的信息。每个部门/员工/经理都由一个uuid(16字节)表示。每个uuid可能会在数据中重复多次。数据可能很大(拥有数百个部门和数千名员工的公司),并且必须通过网络传输。

假设我们有员工/经理/部门的uuids列表。

  1. 如何使用erlang zlib以uuids列表最佳地压缩数据?
  2. 在这个用例中,有比zlib更好的选择吗?

1 个答案:

答案 0 :(得分:0)

如果对象已经是Erlang对象,只需使用term_to_binary(Term, [{compressed, 9}])。这会将Erlang术语序列化为二进制文件,以后可以通过binary_to_term(Bin)反序列化。 9表示压缩级别。请记住,压缩BIF相当慢,因此请确定数据集的最佳效果。