SuperREP (SREP)

SuperREP (SREP) 3.92

Нет прав для скачивания
Изменения:
  • -m3..-m5: ускорено в 1.5-2 раза, а режимы -a2..64 теперь дают точно тот же размер выходного файла, как -a0/-a1
  • Теперь в ком. строке можно свободно смешивать опции и имена файлов, а также использовать "--" для завершения опций
  • Багфикс: восстановлена подержка (де)кодирования из/на stdin/stdout
  • Багфикс: при ^Break таскбар очищается от индикатора прогресса Windows 7 (зелёной полоски)
Изменения:
  • -m1/-m2: благодаря многопоточности стали в 4-5 раз быстрее, до 4.5 и 2.7 ГБ/с, соответственно; опция -tN - использовать N потоков
  • -m1/-m2: вдвое уменьшена используемая память, теперь она сравнима с -m3 при одинаковом L
  • -m3..-m5: блоки сличаются по VMAC вместо SHA-1, что вместе с другими улучшениями дало выигрыш в скорости на 10-40%
  • -m5: добавлен акселератор I/O, вдвое уменьшивший отставание по скорости от -m4. Использует дополнительно 4*filesize/L памяти, отключается опцией -ia-
  • -a0: вдвое быстрее чем раньше, на больших файлах теперь почти не уступает по скорости -a1
  • Индикатор прогресса в таскбаре для Windows 7 и выше (зелёная полоска)
Методы сжатия:
  • -m1: 1 ГБ/с дедупликация с нарезкой на фрагменты по их содержимому используя фиксированное окно (аналогично fma)
  • -m2: 0.5 ГБ/с дедупликация с нарезкой на фрагменты по их содержимому используя модель 1-го порядка (аналогично zpaq)
  • -m3..-m5: переименованные прежние -m1..-m3

Ускоритель сжатия (используется только для -m3..-m5):
  • -a2..-a64 теперь имеют практически тот же уровень сжатия, что -a1
  • -aX/Y: выделить X байт на каждые L входных байт для таблицы ускорителя; Y=0/1/2/4/8/16/32/64
  • при этом обработка каждого входного байта будет требовать в среднем 1/Y+Y/L простых плюс Y/(20*X)+1/L медленных обращений к памяти
  • без ускорителя (-a0), обработка каждого входного байта требует 2 медленных обращений к памяти
  • -aX == -aX/X, за исключением -a32 == -a32/16 и -a64 == -a64/16

Режимы сжатия:
  • -m1..-m5: новый режим Индексного-LZ. Полный индекс совпадений записывается в конец сжатого файла. Однопроходная упаковка. Однопроходная распаковка с несколькими операциями fseek по входному файлу
  • -m1f..-m5f: режим Будущего-LZ. Информация о повторе записывается в том месте, откуда должны быть скопированы данные. Двухпроходная упаковка, однопроходная распаковка
  • -m1o..-m5o: режим Дискового-LZ. Однопроходная упаковка. Распаковка с чтением повторяющихся данных напрямую с диска

Прочие изменения:
  • -hash=vmac(по умолчанию)/siphash/md5/sha1/sha512: больше вариантов хешей для проверки контрольных сумм упакованных блоков с использованием по умолчанию самого быстрого и при этом криптографически стойкого
  • -md5 == -hash=md5; -nomd5 == -hash-
  • -b: опция для задания размера буфера упаковки (по умолчанию 8 МБ)
  • -sX.Y: обновлять индикатор прогресса каждые X.Y секунд; -s-: печатать только финальную статистику
  • -pc: при распаковке включает показ счётчиков производительности Индексного-LZ и Будущего-LZ (раньше они показывались всегда)
  • Набор опций по умолчанию: -m3 -a4 -hash=vmac -b8m -s0.2; -l4k для -m1/-m2 и -l512 для -m3..-m5
  • Добавлены новый режим упаковки Индексный-LZ в дополнение к старым Дисковый-LZ и Будущий-LZ. Новый режим очень похож на Будущий-LZ, но список всех найденных совпадений запоминается в конце сжатого файла. Это позволяет наконец-то производить и упаковку, и распаковку в один проход, правда при распаковке делается несколько перемещений по входному файлу, чтобы сначала прочитать из него список совпадений. Поэтому новый режим не подойдёт в тех случаях, когда входной файл нужно читать строго последовательно (например при распаковке с stdin). В результате, режим Индексного-LZ обеспечивает максимальную скорость упаковки и распаковки по сравнению со старыми режимами
  • Режимы ускорения -a2..-a64 теперь имеют практически тот же уровень сжатия, что -a1. C другой стороны, режимы -a0/-a1 стали медленней, чем в предыдущей версии. Поэтому я настоятельно рекомендую использовать режимы -a4..-a16 за исключением тех случаев, когда вам не хватает ОЗУ или сжатие упирается в скорость работы диска:
  • -aX/Y: новый формат опции позволяет явно задавать размер таблицы акселератора (X байт на каждые L входных байт) и ускорение доступа к памяти (обработка каждого входного байта в среднем требует 1/Y+Y/L простых плюс Y/(20*X)+1/L медленных операций с памятью, а операции с памятью в десятки раз медленней остальных операций, поэтому именно их количеством на 80% определяется общая скорость работы алгоритма). При использовании короткой формы -aX, Y будет установлено в минимум(X,16), как неявно делалось и в предыдущей версии. Опция -a0, как и раньше, полностью отключает акселератор, при этом обработка каждого байта требует 2 медленных обращения в память.
  • Для верификации распакованных данных теперь используется криптохеш VMAC, который в 10 раз быстрее и более криптографически стоек, чем ранее использовавшийся MD5. Также я осознал, что в некоторых сценариях работы простой вывод статистики на консоль мог значительно замедлять работу! Поэтому теперь он происходит не чаще чем раз в 0.2 секунды (опция -s0.2)
Изменения:
  • -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
  • -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
Изменения:
  • -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, but still up to 1.5x slower than 64-bit code
  • gcc64 version: srep64g.exe. srep32i/srep64i still are the fastest executables
  • displays CPU Time spent in *ALL* threads, speeds are measured in MiB/s
  • -pc option displays internal performance counters
Изменения:
  • -m1f..-m3f: Future-LZ compression; -m3f now is the default mode
  • -mem: limit amount of RAM used for Future-LZ decompression
  • -vmfile and -vmblock options fine-tune VM file used in -mem mode
  • -mBYTES: copy matches longer than BYTES directly from outfile
  • 3x faster compression: I/O and MD5/SHA1 tasks were offloaded into separate thread
  • unrolled internal loop, unrolling factor controlled by -a option, -a1 is the slowest but requires least memory
  • -nomd5: don't store/check MD5 checksum of every block
  • -mmap: use memory-mapped file for match checking by I/O
  • when necessary, temporary file is created automatically
  • made stderr always unbuffered (useful for GUIs around srep.exe providing progress indicator)
  • "srep" and "srep -d" commands now work as a filter if stdin and stdout are redirected
  • 64-bit version now can use >4 GB of RAM
  • fixed bug when compressing data from pipe (i.e. producer | srep)
Изменения:
  • -m3: new default compression mode that finds byte-exact matches; so srep:m3 outperforms rep+srep:m2
  • -temp=FILENAME option that allows to use stdin-to-stdout mode without any restrictions (all external data required for compression/decompression are stored in this file)
  • -c option to explicitly specify hash chunk size
  • -s option to specify size of input data
  • "srep file" and "srep file.srep" syntax now supported for compression and decompression respectively, simplifying program usage and allowing to just drag-n-drop file to executable's icon in order to compress or decompress it
  • on disk overflow (or other write error), program displays message, deletes outfiles and returns dos error code
  • compression memory usage was reduced by 8 mb
Изменения:
  • -m1: old method (compression memory = 6-7% of filesize, check matches by SHA1 digest)
  • -m2: new, default method (compression memory = 2-3% of filesize, check matches by rereading old data)
  • -index option - keep index of compressed data in separate file in order to improve compression ratio
  • 64-bit executable that's still 100% compatible but faster than 32-bit one
Изменения:
  • -delete option that delete source file after successful (de)compression
  • checking of -l value
Изменения:
  • better compression due to improved hashing and compressed format
  • faster compression on files <1gb
  • MD5 integrity checking on decompressed data
  • first 8 bytes of compressed file now contains SREP signature, helping programs like unix magic
  • exit code == 0 on success
Сверху