当使用不同的库(如NodeJS中的Zlib和.Net中的SharpZipLib)时,GZip类型的压缩比会改变吗



背景:我正在测试我们设备的压缩比。数据作为Json有效载荷从设备发送。这是一个JArray格式。我会得到这个数据的字节大小。它进入转换器。在转换器中,该数据使用NodeJS中实现的Zlib库进行压缩。我没有访问此代码的权限。我不知道NodeJS。我只知道C#。

可以使用SharpZipLib或.Net中的任何其他GZip压缩库进行压缩以复制转换器的工作吗。它会有多准确?压缩是否会因为使用不同的库而有很大差异?

如果库实现得很好,那么在默认设置下,压缩比应该不会有太大差异。它们都有某种压缩级别设置,你可以改变它,这可以调整它们在试图更好地压缩时投入的CPU时间。因此,即使是其中的一台压缩机,在不同的压缩水平下,你也会看到一些明显的差异。

有一些糟糕的实现。值得注意的是,在zlib被集成到.NET中之前,它的压缩率非常糟糕,因为它的实现非常笨拙。

真正重要的是先压缩后解压缩是无损的。如果你确保你对库的使用遵守这一点,那么你就没事了。

压缩率主要取决于压缩算法和使用的压缩设置。通货紧缩是最常见的一种。我预计在尺寸上不会有任何显著差异。

但是,即使使用相同的算法,不同的库也可能使用不同的头。如果你想要向后兼容,你需要有一个兼容的库。另请参阅zip与gzip与zlib。

检查是否存在任何大小差异或向后兼容性问题的最佳方法是对其进行测试

最新更新