#+PROPERTY: header-args:bash :session valgrind * NAR Decompression memory benchmark #+begin_src bash :results none guix environment --ad-hoc valgrind lzip gzip zstd wget #+end_src #+begin_src bash :cache yes valgrind --version | sed 's/-/ /' lzip --version | head -1 gunzip --version | head -1 | sed 's/\s(/(/' zstd --version | sed -e 's/command.*v//' -e 's/,.*//' -e 's/**//' #+end_src #+RESULTS[e07cecfd5cc770b7a898408b80678f2e8ea7772e]: | valgrind | 3.16.1 | | lzip | 1.21 | | gunzip(gzip) | 1.1 | | zstd | 1.4.4 | Just noticed that there should be a new zstd release ([[https://github.com/facebook/zstd/releases/][zstd 1.4.8]]), and a new lzip release ([[https://download.savannah.gnu.org/releases/lzip/][lzip 1.22]]). ** Prepare required data #+begin_src bash :cache yes wget https://ci.guix.gnu.org/nar/gzip/kfcrrl6p6f6v51jg5rirmq3q067zxih6-ungoogled-chromium-87.0.4280.88-0.b78cb92 -O uc.nar.gz wget https://ci.guix.gnu.org/nar/lzip/kfcrrl6p6f6v51jg5rirmq3q067zxih6-ungoogled-chromium-87.0.4280.88-0.b78cb92 -O uc.nar.lz #+end_src #+RESULTS[ea17e5a54da1ca54a9c82f264912675d9ca981a0]: Create zstd compressed file #+begin_src bash :results none gunzip -c < uc.nar.gz > uc.nar zstd -19 uc.nar -o uc.nar.zstd #+end_src Check file sizes #+begin_src bash ls -lh --sort=size | head -5 #+end_src #+RESULTS: | total | 585M | | | | | | | | | -rw-r--r-- | 1 | nixo | users | 335M | Jan | 29 | 15:14 | uc.nar | | -rw-r--r-- | 1 | nixo | users | 103M | Jan | 29 | 15:13 | uc.nar.gz | | -rw-r--r-- | 1 | nixo | users | 78M | Jan | 29 | 15:14 | uc.nar.zstd | | -rw-r--r-- | 1 | nixo | users | 71M | Jan | 29 | 15:13 | uc.nar.lz | ** Decompress #+name: massif #+begin_src bash :session valgrind :var command="ls" input="." output="/dev/null" name="ls" time valgrind --tool=massif --log-file=/dev/null --time-unit=B --trace-children=yes --massif-out-file=$name.massif $command < $input >$output #+end_src #+call: massif(command="gunzip -c", input="uc.nar.gz", output="/dev/null", name="gzip") #+RESULTS: | nixo@guixSD | ~/prof | [env]$ | nixo@guixSD | ~/prof | [env]$ | nixo@guixSD | ~/prof | [env]$ | | real | 0m8.291s | | | | | | | | | user | 0m7.910s | | | | | | | | | sys | 0m0.201s | | | | | | | | #+call: massif(command="lzip -d", input="uc.nar.lz", output="/dev/null", name="lzip") #+RESULTS: | nixo@guixSD | ~/prof | [env]$ | nixo@guixSD | ~/prof | [env]$ | nixo@guixSD | ~/prof | [env]$ | | real | 0m22.378s | | | | | | | | | user | 0m20.959s | | | | | | | | | sys | 0m0.345s | | | | | | | | #+call: massif(command="zstd -d", input="uc.nar.zstd", output="/dev/null", name="zstd") #+RESULTS: | nixo@guixSD | ~/prof | [env]$ | nixo@guixSD | ~/prof | [env]$ | nixo@guixSD | ~/prof | [env]$ | | real | 0m4.607s | | | | | | | | | user | 0m4.157s | | | | | | | | | sys | 0m0.135s | | | | | | | | ** Check massif output #+begin_src bash :results raw drawer for ext in gzip lzip zstd; do ms_print $ext.massif > $ext.graph done #+end_src #+RESULTS: :results: :end: -------------------------------------------------------------------------------- Command: /gnu/store/378zjf2kgajcfd7mfr98jn5xyc5wa3qv-gzip-1.10/bin/gzip -d -c Massif arguments: --time-unit=B --massif-out-file=gzip.massif ms_print arguments: gzip.massif -------------------------------------------------------------------------------- KB 15.59^ # | # | # | # | # | # : | # : | # : | : # :: : : | : # :: : : : | : :#: ::::: :: : :: : : : : : @@ : | : :#: :: : :: : : : : : : : @ : | : :#: :: : :: : : : : : : : @ : | : :#: :: : :: : : : : : : : : @ : | : :#: :: : :: : : : : : : : : @ : | : :#: :: : ::: ::: :::: : : : :: : @ : : | : :#: :: : ::: ::: :: :: : : : :::: :::: : @ : : | : :#::::: : ::: ::: : :: : ::: : ::: : ::: :::@@ : @ ::: : | : :#:: :: : :::::::: : :: : :: :: ::: : ::: :: @ :::@ :: : | ::::#:: :: : :::: ::: : :: : :: :: ::: : ::: :: @ :::@ :: : : 0 +----------------------------------------------------------------------->MB 0 114.8 Number of snapshots: 53 Detailed snapshots: [5 (peak), 21, 39, 42, 46, 50] -------------------------------------------------------------------------------- Command: lzip -d Massif arguments: --time-unit=B --massif-out-file=lzip.massif ms_print arguments: lzip.massif -------------------------------------------------------------------------------- MB 32.09^ ################################### | # | # | # | # | # | # | # | # | # | # | # | # | # | # | # | # | # | # | # 0 +----------------------------------------------------------------------->MB 0 64.18 Number of snapshots: 12 Detailed snapshots: [6 (peak)] -------------------------------------------------------------------------------- Command: zstd -d Massif arguments: --time-unit=B --massif-out-file=zstd.massif ms_print arguments: zstd.massif -------------------------------------------------------------------------------- MB 8.665^ # | :#::::::::::::::::::::::::::::::::: | :# | :# | :# | :# | :# | :# | :# | :# | :# | :# | :# | :# | :# | :# | :# | :# | :# | :# 0 +----------------------------------------------------------------------->MB 0 17.33 Number of snapshots: 18 Detailed snapshots: [9 (peak)]