#if 0 /*─────────────────────────────────────────────────────────────────╗ │ To the extent possible under law, Justine Tunney has waived │ │ all copyright and related or neighboring rights to this file, │ │ as it is written in the following disclaimers: │ │ • http://unlicense.org/ │ │ • http://creativecommons.org/publicdomain/zero/1.0/ │ ╚─────────────────────────────────────────────────────────────────*/ #endif #include "libc/assert.h" #include "libc/calls/calls.h" #include "libc/errno.h" #include "libc/mem/mem.h" #include "libc/mem/gc.internal.h" #include "libc/stdio/stdio.h" #include "libc/str/str.h" #include "third_party/zlib/zlib.h" #define CHUNK 32768 // clang-format off // make -j8 o//examples && dd if=/dev/urandom count=100 | tee a | o//examples/compress.com | o//examples/decompress.com >b && sha1sum a b /* # data file is o/dbg/third_party/python/python.com # level 0 147517 compress 495 MB/s decompress 1.4 GB/s # level 1 80274 compress 29.2 MB/s decompress 303 MB/s # level 2 79384 compress 33.8 MB/s decompress 212 MB/s # level 3 78875 compress 28.9 MB/s decompress 224 MB/s # level 4 78010 compress 27.1 MB/s decompress 319 MB/s <-- sweet spot? # level 5 77107 compress 19.5 MB/s decompress 273 MB/s # level 6 75081 compress 10.0 MB/s decompress 99.3 MB/s # level 7 75022 compress 7.5 MB/s decompress 287 MB/s # level 8 75016 compress 5.4 MB/s decompress 109 MB/s # level 9 75016 compress 5.4 MB/s decompress 344 MB/s m= make -j8 MODE=$m o/$m/examples || exit for level in $(seq 0 9); do for strategy in F L R H; do o/$m/examples/compress.com -$strategy$level /tmp/info >/tmp/comp compspeed=$(grep -Po '[.\d]+ \w+/s' /tmp/info) o/$m/examples/decompress.com /tmp/info >/dev/null decompspeed=$(grep -Po '[.\d]+ \w+/s' /tmp/info) size=$(o/$m/examples/compress.com -$strategy$level