summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Wienand2011-09-09 20:19:35 +0200
committerDenys Vlasenko2011-09-09 20:19:35 +0200
commitc2a06db69de7562024524a89a7b0f0f7e61c5999 (patch)
treefd38f4525062bc8b22e1dfe142e6f5fc6e3f5e42
parent880eec8f33843d00142d2639dfe7d807dc125cf9 (diff)
downloadbusybox-c2a06db69de7562024524a89a7b0f0f7e61c5999.zip
busybox-c2a06db69de7562024524a89a7b0f0f7e61c5999.tar.gz
gzip: new GZIP_BIG_MEM option
Enabling the config option on my standard linux box and zipping a random 250mb file: small mem: 21.85user 0.44system 0:22.35elapsed big mem: 13.45user 0.46system 0:13.94elapsed Signed-off-by: Ian Wienand <ianw@vmware.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--archival/Config.src10
-rw-r--r--archival/gzip.c6
2 files changed, 15 insertions, 1 deletions
diff --git a/archival/Config.src b/archival/Config.src
index 81788ec..9f49081 100644
--- a/archival/Config.src
+++ b/archival/Config.src
@@ -187,6 +187,16 @@ config FEATURE_GZIP_LONG_OPTIONS
help
Enable use of long options, increases size by about 106 Bytes
+config GZIP_BIG_MEM
+ bool "Trade memory for gzip speed"
+ default n
+ depends on GZIP
+ help
+ Enable big memory options for gzip, including larger I/O
+ buffers and bigger hash tables. Faster, but uses at least
+ twice as much memory. Select if speed is more important than
+ memory use.
+
config LZOP
bool "lzop"
default y
diff --git a/archival/gzip.c b/archival/gzip.c
index 403eb4d..0e0b681 100644
--- a/archival/gzip.c
+++ b/archival/gzip.c
@@ -81,7 +81,11 @@ aa: 85.1% -- replaced with aa.gz
/* ===========================================================================
*/
-#define SMALL_MEM
+#if ENABLE_GZIP_BIG_MEM
+# define BIG_MEM
+#else
+# define SMALL_MEM
+#endif
#ifndef INBUFSIZ
# ifdef SMALL_MEM