Erlang中的文本压缩



Erlang有文本压缩库吗?当处理非常长的字符串时,压缩字符数据可能是有利的。有人在Erlang中压缩文本或想办法压缩文本吗?

我本来想使用zip模块,但我没有处理文件,而是在内存中这样工作:

compress(LargeText)->
    Binary = list_to_binary(LargeText),
    {ok,{_,Zipped}} = zip:zip("ZipName",[{"Name",Binary}],[memory]),
    Zipped.

然后当我需要的时候,我会把文本unzip放回内存

{ok,[{"Name",Binary}]} = zip:unzip(Zipped,[memory]).

我的Erlang应用程序应该是中间层的一部分,在中间层中,大型文本可能必须进出存储系统。存储系统用于存储大型文本。为了优化存储,需要在发送之前对其进行压缩。假设文本值类似于Oracle数据库中的CLOB数据类型。我在想,如果我把拉链和erlang:garbage_collect/0结合起来,我就能成功。

或者,如果这在Erlang中是不可能的,也许可以通过os:cmd({Some UNIX script})使用system call,然后我会获取Erlang的输出?如果有更好的方法,请出示。

Erlang有一个zlib模块,它支持内存中的压缩和解压缩。

您可以考虑使用比zip快得多的快速压缩,尤其是在解压缩时。

编辑:现在我经常使用LZ4,我对它很满意。它有一个漂亮可读的代码,简单的格式,维护良好,甚至比Snappy更快。

相关内容

  • 没有找到相关文章

最新更新