为了提高性能,我需要压缩部分应用程序的网络流量。我想这意味着我需要远离一些新的算法,比如bzip2,我想我听说它更慢。
什么是Java的好压缩库?
原标题:
最佳回答
您可以使用导流器/内置于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。
相关问题
热门标签
- winforms
- combobox
- fogbugz
- java
- date
- internationalization
- asp.net
- iis
- url-rewriting
- urlrewriter
- c#
- enums
- ocaml
- haxe
- algorithm
- string
- viewstate
- .net
- c++
- c
- symbol-table
- mysql
- database
- postgresql
- licensing
- migration
- vb.net
- vb6
- declaration
- vb6-migration
- python
- psycopg2
- backup
- vmware
- virtualization
- gnu-screen
- authentication
- desktop
- excel
- xll
- cultureinfo
- regioninfo
- oracle
- client
- session
- download
- html
- virtual
- constructor
- scenarios
- perl
- full-text-search
- javascript
- ajax
- testing
- oop
- inheritance
- vim
- encapsulation
- information-hiding