使用NodeJS中的Zlib和.Net中的SharpZipLib等不同的库时,GZip类型的压缩比会发生变化吗?

Will the GZip type compression ratio change when using different libraries like Zlib in NodeJS and SharpZipLib in .Net?

背景: 我正在测试我们设备的压缩比。 从设备中,数据作为 Json 有效负载发送。它是一种 JArray 格式。我将以字节为单位获取此数据的大小。它进入转换器。在转换器中,此数据使用在 NodeJS 中实现的 Zlib 库进行压缩。我无权访问此代码。我不知道 NodeJS。我只会C#。

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

压缩率将主要取决于 compression algorithm and what compression settings are used. Deflate 是最常见的一种。我预计尺寸不会有任何显着差异。

但即使使用相同的算法,不同的库也可能使用不同的 headers。如果你想要向后兼容,你需要有一个兼容的库。另见 zip vs gzip vs zlib

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

如果库实现良好,您应该不会在默认设置下看到压缩率的巨大差异。它们都会有某种您可以改变的压缩级别设置,这会调整它们将投入多少 CPU 时间来尝试更好地压缩。因此,即使对于这些压缩器中的一个,您实际上也会在不同的压缩级别上看到一些明显的差异。

实施不当。尤其是在 zlib 集成到其中之前的 .NET。由于无能为力,它的压缩率非常糟糕。

真正重要的是先压缩再解压是无损的。如果您确保您对库的使用符合这一点,那么就没问题。