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 应用程序应该是中间层的一部分,在该中间层中,大文本可能必须传入和传出存储系统。存储系统旨在存储大文本。为了优化存储,需要在发送之前对其进行压缩。假设文本值类似于CLOB
Oracle 数据库中的数据类型。我在想,如果我把拉链和拉链结合起来erlang:garbage_collect/0
,我可以把它拉下来。
或者,如果在 Erlang 中不可能,也许可以使用system call
via os:cmd({Some UNIX script})
,然后我会在 Erlang 中获取输出?如果有更好的方法,请展示它。