Z możliwych poziomów kompresji DEFLATE [0 .. 9], które dokładnie odpowiadają Jowi Deflater.DEFAULT_COMPRESSION
? W kodzie źródłowym Javy, widzę go jako public static final int DEFAULT_COMPRESSION = -1;
Czym dokładnie jest DEFAULT_COMPRESSION?
8
A
Odpowiedz
7
Z_DEFAULT_COMPRESSION
ma być dobrym kompromisem pomiędzy szybkością i skutecznością kompresji. To jest kolano na zakręcie. Rzeczywisty poziom, który obecnie odpowiada 6, jest wewnętrznym wyborem, który może się zmienić w przyszłych wersjach, jeśli zmieni się algorytm kompresji. Więc nie powinieneś polegać na tym, że pozostaje równoważny poziomowi 6.
9
Kod Java używa klasa new ZStreamRef(init(level, DEFAULT_STRATEGY, nowrap));
metoda init jest rodowitym wezwanie i ZStreamRef jest nawiązaniem do zlib. Więc to, co kiedykolwiek używa Zlib jako domyślne. W wersji 1.2.8 domyślną wartością jest 6, jak podano w devnull.
z podręcznika 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).