findutils-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Findutils-patches] [PATCH] maint: use an optimal-for-findutils xz compr


From: Bernhard Voelker
Subject: [Findutils-patches] [PATCH] maint: use an optimal-for-findutils xz compression setting
Date: Sat, 28 Oct 2017 15:59:47 +0200

* cfg.mk: Set XZ_OPT = -7e (determined empirically).
The compressed tarball size is identical to the default settings (-9e),
but using -9e would force every decompression process to use 48 MiB
more memory.
---
 cfg.mk | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/cfg.mk b/cfg.mk
index 1ac49f0..aa47618 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -34,6 +34,33 @@ exclude_file_name_regexp--sc_space_tab = \
 # any case we don't use help2man at all.
 local-checks-to-skip += sc_two_space_separator_in_usage
 
+# Comparing tarball sizes compressed using different xz presets, we see that
+# an -7e-compressed tarball has the same size as the -9e-compressed one.
+# Using -7e is preferred, since that lets the decompression process use less
+# memory (19MiB rather than 67MiB).
+# $ pkg=x; out=x.out; \
+#     printf "%3s %8s %6s %s\n" OPT PKGSIZE RESMEM TIME; \
+#     for i in {5..9}{e,}; do \
+#       xz -$i < findutils-4.7.0-git.tar > $pkg; \
+#       s=$(wc -c < $pkg); \
+#       env time -v xz -d - < $pkg >/dev/null 2> $out; \
+#       m=$(sed -n '/Maximum resident set size/{s/^.*: //;p;q}' < $out); \
+#       t=$(sed -n '/User time/{s/^.*: //;p;q}' < $out); \
+#       printf "%3s %8d %6d %s\n" "$i" "$s" "$m" "$t"; \
+#     done | sort -k2,2nr
+#OPT  PKGSIZE RESMEM TIME
+#  5  1994080  10484 0.12
+#  6  1956672  10564 0.11
+# 5e  1935660  10456 0.11
+# 6e  1930628  10396 0.11
+#  8  1881520  34880 0.11
+#  9  1881520  67732 0.12
+#  7  1881496  18564 0.11
+# 7e  1855268  18584 0.11
+# 8e  1855268  35016 0.11
+# 9e  1855268  67844 0.11
+export XZ_OPT = -7e
+
 # Some test inputs/outputs have trailing blanks.
 exclude_file_name_regexp--sc_trailing_blank = \
  
^COPYING|(po/.*\.po)|(find/testsuite/(test_escapechars\.golden|find.gnu/printf\.xo))|(xargs/testsuite/(inputs/.*\.xi|xargs\.(gnu|posix|sysv)/.*\.(x[oe])))$$
-- 
2.1.4




reply via email to

[Prev in Thread] Current Thread [Next in Thread]