在可能的 DEFLATE 压缩级别 [0 .. 9] 中,Java 到底Deflater.DEFAULT_COMPRESSION
对应哪一个?在 Java 源代码中,我将其视为public static final int DEFAULT_COMPRESSION = -1;
问问题
8262 次
2 回答
21
Z_DEFAULT_COMPRESSION
旨在成为速度和压缩效率之间的良好折衷。它是曲线中的膝盖。它当前等效于 6 的实际级别是内部选择,如果压缩算法发生变化,可能会在未来版本中发生变化。所以你不应该依赖它保持相当于 6 级。
于 2013-05-10T15:56:45.533 回答
19
java 代码使用类new ZStreamRef(init(level, DEFAULT_STRATEGY, nowrap));
init 方法是本机调用, ZStreamRef 是对zlib的引用。所以它是 zlib 默认使用的。在 1.2.8 版本中,默认值为 6,如 devnull 所述。
来自 zlib 手册
Compression levels.
#define Z_NO_COMPRESSION 0
#define Z_BEST_SPEED 1
#define Z_BEST_COMPRESSION 9
#define Z_DEFAULT_COMPRESSION (-1)
...
Z_DEFAULT_COMPRESSION requests a default compromise between speed and compression (currently equivalent to level 6).
于 2013-05-10T15:32:35.503 回答