gpt4 book ai didi

javascript - Node zlib——内部应用程序数据库中字符串的 Gzip vs Deflate vs DeflateRaw

转载 作者:搜寻专家 更新时间:2023-10-31 23:44:57 26 4
gpt4 key购买 nike

我想知道如何压缩 1 到 10kb 之间的相对较小的字符串以存储在我的服务器上。服务器和接收客户端应用程序在实际请求期间不会使用我选择的压缩。压缩将仅用于节省服务器上的存储空间。

在这种情况下,真的有必要使用带有 header 的 gzip 吗?我可以使用放气吗?甚至可能会压缩 raw,因为我知道所有情况下字符串的编码?

我看到反对 deflate 的第一个论点是浏览器中的不一致实现,但这似乎与我的情况无关。

我的想法有问题吗?

如果 deflate 是 gzip 的可行替代方案,那么 deflate raw 呢?

最佳答案

首先是一些术语。 Deflate指的是原始deflate格式,如RFC 1951中所述。因此“deflate”和“deflate raw”之间没有区别。您可能会想到名称错误的“deflate”HTTP 编码,它实际上不是 deflate,而是 zlib,如 RFC 1950 中所述。

其次,在大多数情况下,将小字符串压缩为独立的、可解压缩的文件,这似乎是在暗示,将导致压缩效果相当差。您应该连接这些字符串,以及您需要能够再次将它们拉开的任何结构,至少连接到大约 1 MB 的级别并对它们应用压缩。您没有说明您希望以后如何访问这些字符串,在这样的方案中需要考虑这些字符串。

第三,即使压缩 1 KB 到 10 KB 范围内的小字符串,gzip、zlib 和 deflate 之间的差异在所占用的空间上基本上可以忽略不计。 header和trailers对于三种格式分别占18字节、6字节和0字节。因此,如果您担心的是空间,那么放弃 gzip 几乎没有什么好处。

第四,压缩时不计算 CRC-32 或 Adler-32 校验值(分别用于 gzip 和 zlib)可能会有一点速度优势,但与压缩所花费的时间相比,它再次可以忽略不计。

关于javascript - Node zlib——内部应用程序数据库中字符串的 Gzip vs Deflate vs DeflateRaw,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49349960/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com