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]).
我二郎應用程序應該是在大的文本可能必須通過到,進出存儲系統的中間層的一部分。存儲系統旨在存儲大量文本。爲了優化存儲,在發送之前需要對其進行壓縮。假設文本值類似於Oracle數據庫中的CLOB
數據類型。我在想,如果我把壓縮和erlang:garbage_collect/0
結合起來,我可以把它拉下來。
或者如果在Erlang中不可能,或許可以使用system call
通過os:cmd({Some UNIX script})
,然後我會在Erlang中獲取輸出?如果有更好的方法,請顯示它。
謝謝@馬克+阿德勒 – 2012-07-17 05:55:29
我已經看到了這一點。但可能認爲它可能與'zip'模塊 – 2012-07-17 05:57:01
差別不大。它有很大不同。請閱讀文檔。這是你正在尋找的機器人。它壓縮和解壓縮不使用zip格式的緊湊流,也不攜帶有關文件名等信息。您還可以閱讀zlib手冊(http://zlib.net/manual.html)以及使用示例zlib(http://zlib.net/zlib_how.html)。 – 2012-07-17 16:35:55