[英]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.