gzip: set default compression level to 6 when CONFIG_FEATURE_GZIP_LEVELS=n
With this change, GNU gzip -n and BusyBox gzip now produce identical output assuming that CONFIG_GZIP_FAST=2. >> Excuse me, but I wonder one thing: Why should we follow >> strictly with gzip on the no-options default behavior? > First, the default 6 compression level is a de-facto standard. BSD gzip > and Apple gzip (on macOS) use this default as well. So there is a > reasonable expectation that different gzip implementations act the same. > For instance, if the default for busybox gzip becomes 9, then someone > writing a script using busybox gzip could reasonably expect that the > compression level will still be 9 when the same script is run on another > system. That would be wrong. Implementations should not deviate from > de-facto standards without a strong reason. > > Second, the inherent reason for this default has not gone away. While > processor speeds have exploded since the default was set, so has the > typical size of compressed files. Multiple gigabytes are nothing unusual > these days. And gzip is often used for compression on the fly, precisely > because it offers a good compromise between speed and compression ratio. > So I believe 6 continues to be a reasonable default. function old new delta deflate 939 927 -12 Signed-off-by: Daniel Edgecumbe <git@esotericnonsense.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
		
				
					committed by
					
						
						Denys Vlasenko
					
				
			
			
				
	
			
			
			
						parent
						
							ca5d86d52c
						
					
				
				
					commit
					c660cc1b77
				
			@@ -52,7 +52,7 @@ aa:      85.1% -- replaced with aa.gz
 | 
			
		||||
//config:	help
 | 
			
		||||
//config:	Enable support for compression levels 4-9. The default level
 | 
			
		||||
//config:	is 6. If levels 1-3 are specified, 4 is used.
 | 
			
		||||
//config:	If this option is not selected, -N options are ignored and -9
 | 
			
		||||
//config:	If this option is not selected, -N options are ignored and -6
 | 
			
		||||
//config:	is used.
 | 
			
		||||
//config:
 | 
			
		||||
//config:config FEATURE_GZIP_DECOMPRESS
 | 
			
		||||
@@ -259,13 +259,13 @@ enum {
 | 
			
		||||
 | 
			
		||||
#if !ENABLE_FEATURE_GZIP_LEVELS
 | 
			
		||||
 | 
			
		||||
	comp_level = 9,
 | 
			
		||||
	max_chain_length = 4096,
 | 
			
		||||
	comp_level = 6,
 | 
			
		||||
	max_chain_length = 128,
 | 
			
		||||
/* To speed up deflation, hash chains are never searched beyond this length.
 | 
			
		||||
 * A higher limit improves compression ratio but degrades the speed.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
	max_lazy_match = 258,
 | 
			
		||||
	max_lazy_match = 16,
 | 
			
		||||
/* Attempt to find a better match only when the current match is strictly
 | 
			
		||||
 * smaller than this value. This mechanism is used only for compression
 | 
			
		||||
 * levels >= 4.
 | 
			
		||||
@@ -277,7 +277,7 @@ enum {
 | 
			
		||||
 * max_insert_length is used only for compression levels <= 3.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
	good_match = 32,
 | 
			
		||||
	good_match = 8,
 | 
			
		||||
/* Use a faster search when the previous match is longer than this */
 | 
			
		||||
 | 
			
		||||
/* Values for max_lazy_match, good_match and max_chain_length, depending on
 | 
			
		||||
@@ -286,7 +286,7 @@ enum {
 | 
			
		||||
 * found for specific files.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
	nice_match = 258,	/* Stop searching when current match exceeds this */
 | 
			
		||||
	nice_match = 128,	/* Stop searching when current match exceeds this */
 | 
			
		||||
/* Note: the deflate() code requires max_lazy >= MIN_MATCH and max_chain >= 4
 | 
			
		||||
 * For deflate_fast() (levels <= 3) good is ignored and lazy has a different
 | 
			
		||||
 * meaning.
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user