English 中文(简体)
什么是Java的好压缩库?
原标题:
  • 时间:2008-09-24 13:05:39
  •  标签:

为了提高性能,我需要压缩部分应用程序的网络流量。我想这意味着我需要远离一些新的算法,比如bzip2,我想我听说它更慢。

最佳回答

您可以使用导流器/内置于JDK中的充气器。还有GZIPInputStream和GZIPOutputStream,但这实际上取决于您的确切用途。

编辑:

从进一步的评论来看,网络tafic似乎是HTTP。根据服务器的不同,它可能支持压缩(尤其是使用deflate/gzip)。然后问题就出现在客户身上了。如果客户端是浏览器,它可能已经支持它。如果您的客户端是Web服务客户端或http客户端检查该包的文档,看看它是否受支持。

看起来jakarta commons httpclient可能需要您手动进行压缩。要在客户端启用此功能,您需要执行以下操作

.addRequestHeader("Accept-Encoding","gzip,deflate");
问题回答

你的压缩算法取决于你试图优化的内容,以及你有多少可用带宽。

如果你在局域网上,几乎任何压缩算法都会让你的程序慢一点。如果你通过广域网或互联网连接,你可以负担得起更多的压缩。如果你连接到拨号,你应该尽可能多地压缩。

如果这是一个广域网,您可能会找到硬件解决方案,如河床s更有效,因为它们可以在一系列流量中工作,并且不需要对软件进行任何更改。

我有一个测试用例,它显示了放气、过滤、BZip2和lzma。只需插入数据样本,即可测试两台机器之间的计时。

如果网络流量通过HTTP,那么大多数不同的web服务器/servlet容器都支持协商压缩,例如Apache的mod_deflate。





相关问题
热门标签