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