簡體   English   中英

什么是一個很好的Java壓縮庫?

[英]What's a good compression library for Java?

我需要壓縮部分應用程序的網絡流量以提高性能。 我認為這意味着我需要遠離一些像bzip2這樣的新算法,我認為我聽到的速度較慢。

您可以使用內置於JDK中的Deflater / Inflater 還有GZIPInputStream和GZIPOutputStream,但它實際上取決於你的確切用途。

編輯:

閱讀進一步的評論看起來網絡taffic是HTTP。 它可能支持壓縮(特別是使用deflate / gzip),具體取決於服務器。 然后問題出現在客戶端上。 如果客戶端是瀏覽器,它可能已經支持它。 如果您的客戶端是Web服務客戶端或http客戶端,請檢查該軟件包的文檔以查看它是否受支持。

看起來像jakarta-commons httpclient可能要求你手動進行壓縮。 要在客戶端啟用此功能,您需要執行類似的操作

.addRequestHeader("Accept-Encoding","gzip,deflate");

如果網絡流量通過HTTP傳輸,則大多數各種Web服務器/ servlet容器都支持協商壓縮,例如,Apache的mod_deflate。

您的壓縮算法取決於您嘗試優化的內容以及可用的帶寬量。

如果您使用的是gigibit LAN,幾乎任何壓縮算法都會使您的程序速度降低一點。 如果您通過WAN或Internet連接,則可以承受更多壓縮。 如果您連接到撥號,您應該盡可能多地壓縮。

如果這是一個WAN,您可能會發現像Riverbed這樣的硬件解決方案更有效,因為它們適用於各種流量,並且不需要對軟件進行任何更改。

我有一個測試用例,顯示Deflate,Filtered,BZip2和lzma之間的相對壓縮差異。 只需插入數據樣本,然后測試兩台機器之間的時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM