Я делаю тонну сжатия файлов. Большинство вещей, которые я сжимаю, это просто код, поэтому мне нужно использовать сжатие без потерь. Мне было интересно, есть ли что-нибудь, что предлагает лучшее уменьшение размера, чем 7zip. Неважно, сколько времени требуется, чтобы сжать или разархивировать размер - это все, что имеет значение. Кто-нибудь знает такое программное обеспечение в Linux? Или 7zip лучший?
источник
lrzip - это то, что вы действительно ищете, особенно если вы сжимаете исходный код!
Цитирую README:
lrzip сначала сканирует и удаляет любые избыточные данные на больших расстояниях с помощью алгоритма на основе rzip, а затем сжимает не избыточные данные.
Кон Коливас приводит фантастический пример в списке рассылки ядра Linux ; при этом он сжимает архив размером 10,3 ГБ из сорока версий Linux Kernel до 163,9 МБ (1,6%) и делает это быстрее, чем xz. Он даже не использовал самый агрессивный алгоритм второго прохода!
Я уверен, что вы получите отличные результаты, сжимая огромные архивы исходного кода :)
Пример (используется по умолчанию для других параметров):
Ультра компрессия, собака медленная:
Для папок просто поменяйте
lrzip
наlrztar
источник
lrzip
также отлично работает для резервных копийtar/cpio/pax
файлов системных файлов ed, потому что они обычно содержат много избыточных данных на большие расстояния, чтоlrzip
действительно хорошо при сжатии.lrzip
иpixz
на 19 ГБ текстовый файл. На сжатиеlrz
файла понадобилось около получаса (на машине с шестнадцатеричным ядром), но размер файла составлял половину его размераxz
(2,7 против 4,4 ГБ). Итак, вместо этого еще один голос.Если вы ищете наибольшее уменьшение размера независимо от скорости сжатия,
LZMA
вероятно, ваш лучший вариант.При сравнении различных компрессий обычно компромисс между временем и размером.
gzip
имеет тенденцию к сжатию и распаковке относительно быстро, в то же время обеспечивая хорошую степень сжатия.bzip2
несколько медленнее, чем времяgzip
сжатия и декомпрессии, но дает еще большие коэффициенты сжатия.LZMA
имеет наибольшее время сжатия, но дает лучшие соотношения, а также имеет коэффициент декомпрессии, превосходящийbzip2
.Источники: http://bashitout.com/2009/08/30/Linux-Compression-Comparison-GZIP-vs-BZIP2-vs-LZMA-vs-ZIP-vs-Compress.html
http://tukaani.org/lzma/benchmarks.html
источник
zpaq
либоpaq8l
. Тем не менее, они настолько медленные, что они не практичны для большинства реальных применений.sudo apt-get install zpaq
, я сделал несколько тестов, согласно вики , это приложение было бы самым новым 2009, но оно все еще проигрывает в килобайтах (который использует PAQ6), но килограмм НАМНОГО медленнее ...zpaq pvc/usr/share/doc/zpaq/examples/max.cfg file.zpaq file.tar
сжимает больше, чемkgb -9
(обновленный ответ) Если время не имеет значения, используйте ZPAQ v1.10 (или новее), например:
zpaq pvc/usr/share/doc/zpaq/examples/max.cfg file.zpaq file.tar
(расположение файла max.cfg может отличаться, проверьте список установленных файлов пакетов)zpaq
на самом деле сжато больше, чемkgb -9 newFileName.kgb yourFileName.tar
.Это основано на более старом алгоритме PAQ6 и очень медленное ...
Я тестировал со всеми другими компрессорами, такими как 7zip, lrzip, bzip2, kgb .. и zpaq сжимались чаще всего!
Если
kgb
вас все еще интересует: (поскольку это был мой первоначальный выбор в отношении этого ответа, поэтому я сохраняю информацию здесь)Ubuntu 14.04 имеет kgb 1.0b4 , запустите его
sudo apt-get install kgb
для установки.Ниже речь идет о версии Windows, которую вы можете попробовать запустить / скомпилировать
kgb
в Linux, но у меня ничего не получилось.Бета-версию 2 можно найти на SourceForge , но нет доступных бинарных файлов для Linux. Вы можете попробовать запустить его в консоли с помощью
wine kgb2_console.exe -a7 -m9
(метод,-a6 -m9
кажется, эквивалентен лучшему методу в 1.0b4,-a7
является новым в 2 beta2). Хотя у меня была лучшая стабильность благодаря установке .NET 2.0 с winetricks и запускомwine "KGB Archiver 2 .net.exe"
(мне не нравится это делать, поэтому я остановлюсь на родном Linux 1.0b4, который дает почти такой же результат, как 2 beta2).В любом случае, бета-версия 2 также заслуживает родной версии Linux! Может быть, что-то можно сделать с помощью MinGW, посмотрите на это , но эта команда по-прежнему плохо работает:
i586-mingw32msvc-g++ kgb2_console.cpp -o kgb
, Может быть, попытаться скомпилировать егоdmcs
(моно)? увидеть этот совет .источник
7zip не уникальная технология, но поддерживает несколько различных методов сжатия (см. Википедию 7z).
Набор тестов был проведен с различными инструментами , специально для исходных файлов C. Я не уверен, какие инструменты существуют для Linux, если они все еще существуют. Однако, вы можете заметить, что лучшим алгоритмом был PPM с модификациями (PPMII, затем PPMZ).
Если вы заинтересованы в инструментах, вы можете просматривать сайт, он на русском языке, но Google Translate может помочь. Существует большой депозит двоичных файлов , которые вы можете использовать (или не сможете) из Linux с Wine, если это действительно необходимо.
источник