什么';这是一个很好的Java压缩库吗?

什么';这是一个很好的Java压缩库吗?,java,compression,Java,Compression,为了提高性能,我需要压缩部分应用程序的网络流量。我想这意味着我需要远离一些较新的算法,比如bzip2,我想我听说它速度较慢。你可以使用JDK内置的。也有GZIPInputStream和GZIPOutputStream,但这实际上取决于您的确切用途 编辑: 阅读进一步的评论,看起来网络塔菲是HTTP。根据服务器的不同,它可能支持压缩(特别是使用deflate/gzip)。然后问题就出现在客户机上。如果客户端是浏览器,它可能已经支持它了。如果您的客户机是webservices客户机或,请检查该软件包

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

你可以使用JDK内置的。也有GZIPInputStream和GZIPOutputStream,但这实际上取决于您的确切用途

编辑:

阅读进一步的评论,看起来网络塔菲是HTTP。根据服务器的不同,它可能支持压缩(特别是使用deflate/gzip)。然后问题就出现在客户机上。如果客户端是浏览器,它可能已经支持它了。如果您的客户机是webservices客户机或,请检查该软件包的文档,查看是否支持该软件包

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

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

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

您的压缩算法取决于您尝试优化的内容和可用带宽

如果您在gigibit LAN上,几乎任何压缩算法都会使您的程序稍微慢一点。如果您通过WAN或internet进行连接,则可以进行更多的压缩。如果您连接到拨号,则应尽可能压缩

如果这是一个广域网,您可能会发现这样的硬件解决方案更有效,因为它们可以跨一系列流量工作,并且不需要对软件进行任何更改


我有一个测试用例,它显示了两者之间的相对压缩差异。只需插入数据样本,测试两台机器之间的计时

在这种情况下,它是通过HTTP传输的,但它会传输到另一端的客户机,所以我认为没有任何东西可以处理协商。如果我能实施谈判(或者更好的是启用谈判),那就更好了。关于如何处理这个问题,有什么建议吗?请告诉我们有关客户端和服务器的更多信息。细节!作为比较,这个项目可能会有所帮助。它比较了半打编解码器,增加对其他编解码器的支持,更改测试文件,应该很容易。这是一项合作努力。