SuperREP 3.2: huge-dictionary LZ77 preprocessor

Homepage: http://freearc.org/research/SREP.aspx

Description

SuperREP is the first LZ77 compressor that supports dictionaries larger than RAM available. Default settings (-l512) allow to process files that are 20x larger than RAM size. Memory requirements are proportional to 1/L, so by increasing -l value it's possible to process even larger files. Compression speed is about 100 mb/s and decompression runs at 250 mb/s on i3-2100.

Changelog

SREP 3.2 (April 6, 2013):

  • -m2 -lN now is the same as -m3 -lN -cN: compression ratio is average between -m1 and -m3, while speed is the same as in old versions
  • -a0: the same compresssion ratio as -a1, memory usage is smaller by 5-10%, but 1.5-2x slower
  • -a32/-a64: sometimes faster than -a16 (only with large pages), but needs even more memory
  • -slp[+/-/]: force/disable/try(default) large pages support
  • Minor changes:

  • -v[0..2]: verbosity level
  • -pcMAX_OFFSET: print performance counters for matches closer than MAX_OFFSET
  • -l64k/-c1mb syntax support (k/m/kb/mb suffixes for kilobytes/megabytes)
  • Both 32-bit and 64-bit default executables are compiled with GCC 4.7
  • 32/64-bit dynamic/static linux builds

  • SREP 3.1 (February 23, 2013):

  • -m1f -a4 now is default compression mode, for quick and dirty compression. Use -m3f -a1 for maximum compression
  • 32-bit version became 1.5x faster than in SREP 3.0
  • gcc64 version: srep64g.exe. srep32i/srep64i still are the fastest executables
  • bugfix: it was impossible to allocate more than 4 gb for bitarr[]
  • bugfix: 32-bit version now uses only 1.5 gb for future-lz decompression by default (instead of 4gb-1 that's too much)
  • Changes in the printed stats:

  • cpu time displayed now is the sum of times spent in *ALL* threads
  • cpu/global times and speeds are printed, with speeds measured in MiB/s
  • on future-lz decompression, I/O and VM stats are printed only when they are non-zero
  • -pc option displays performance counters
  • Unlike 32-bit SREP 3.01 that used one 32-bit hash resulting in degraded speed on huge files and in -m3 mode, now 32-bit version uses two 32-bit hashes, making compression both fast and accurate. 64-bit version still employs single 64-bit hash, making it up to 1.5x faster than 32-bit code.


    SREP 3.01 (March 4, 2012):

  • speed up the 32-bit executable by calculating 32-bit hash (instead of 64-bit one); it may hurt speed/compression on very large files