0

我的 Java 桌面客户端软件使用 JSON 与用 C 编写的遗留后端系统通信(服务器上有一个转换器)在现场批量部署时消耗了太多带宽。

在研究了压缩选项后,我得出结论,流行的 JSON 压缩工具不适合我的情况。它们似乎是基于跨网络传递数据库查询结果的场景,这不是我的情况。没有方便的行/列算法可用于轻松压缩。我们的数据更复杂。

所以我们开始使用压缩,Java 的 DeflaterOutputStream 和 InflaterInputStream(或者他们的 GZIP 和/或 ZIP 风格)。在 C 端,会有类似的东西,可能是通过 RedHat 提供的 zlib 库,我们的服务器在该库上运行。

在我步入一堆蠕虫之前,有经验的人能否告诉我 zlib 压缩和 Java 支持的压缩的兼容性如何?Java 压缩选项中的一种或另一种比另一种更好吗?比另一个更快?

顺便说一句,该协议是双向的。Server 和 Client 都使用 JSON 来编码消息,所以在我的场景中,双方都需要能够压缩和解压。提前致谢。

4

1 回答 1

1

Java 中的 Deflator、GZIP 和 ZIP 库都使用 zlib 库进行实际压缩,因此它们应该完全相同,而不仅仅是兼容。很可能 GZIP 和 ZIP 更便携,因为 Deflator 只是具有较小页眉/页脚的压缩数据

于 2013-09-04T20:47:51.273 回答