DEFAULT_COMPRESSION究竟是什么?

DEFAULT_COMPRESSION究竟是什么?

问题描述:

在可能的DEFLATE压缩级别[0..9]中,哪一个恰好与Java的Deflater.DEFAULT_COMPRESSION相对应?在Java源代码,我认为这是public static final int DEFAULT_COMPRESSION = -1;DEFAULT_COMPRESSION究竟是什么?

Z_DEFAULT_COMPRESSION旨在是速度和压缩效力之间的良好折衷。这是曲线中的膝盖。当前相当于6的实际级别是一个内部选择,如果压缩算法改变,它可能会在将来的版本中发生变化。所以你不应该依赖它剩下的等于6的水平。

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).