Dei possibili livelli di compressione di DEFLATE [0 .. 9], a quale corrisponde esattamente lo Deflater.DEFAULT_COMPRESSION
di Java? Nel codice sorgente di Java, lo vedo come public static final int DEFAULT_COMPRESSION = -1;
Che cos'è esattamente DEFAULT_COMPRESSION?
8
A
risposta
7
Z_DEFAULT_COMPRESSION
è destinato ad essere un buon compromesso tra velocità e l'efficacia di compressione. È il ginocchio nella curva. Il livello attuale che è attualmente equivalente a, 6, è una scelta interna che potrebbe cambiare nelle versioni future se l'algoritmo di compressione cambia. Quindi non dovresti dipendere dal fatto che rimanga equivalente al livello 6.
9
il codice Java utilizza il new ZStreamRef(init(level, DEFAULT_STRATEGY, nowrap));
il metodo init di classe è una chiamata nativa e la ZStreamRef è un riferimento alla zlib. Quindi è quello che mai zlib usa come predefinito. Nella versione 1.2.8 il valore predefinito è 6 come indicato da devnull.
Dal manuale 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).