Какой метод архивации лучше использовать для сжатия текстовых файлов в Linux?


16

В моем приложении мне нужно сделать сжатие журналов, которые являются текстовыми файлами.

Кажется, что bzip2и gzipимеют одинаковую степень сжатия.

Это верно?


xz (от xz-tools или 7z от p7zip, очень похоже на lzma) - лучший. bzip2 лучше, чем gzip.
osgx

Ответы:


4

Как правило, bz2 имеет лучшую степень сжатия в сочетании с лучшими функциями восстановления.

OTOH, GZ быстрее.

Говорят, что xz даже лучше, чем bz2, но я не знаю, каково время.


xz медленнее, чем bzip2.
osgx

xz не просто медленнее, но гораздо медленнее, файл 300 Мб занял около 30 секунд для сжатия bzip2. Я убил XZ после его сжатия в течение более 5 минут
Теб

@ Копать_Шо_я_нашел Я думаю, это сильно зависит от выбранного вами уровня сжатия. При этом -1он не такой медленный, но с настройками по умолчанию он довольно медленный.
glglgl

7

Последнее обновление maximumcompression.com - июнь-2011 (ответ обновлен в октябре-2015).
Поэтому на этом веб-сайте не упоминается
действующий текстовый компрессор в мире :

      cmix

Соревнования / контрольные показатели:

Детали:
Байрон Нолл активно развиваетсяcmix в Libre программного обеспечения (GPL) с 2013 года на основе книги сжатия данных Разъяснения по Мэтту Махони . Мэтт Махони также поддерживает некоторые из вышеперечисленных тестов и предлагает ZPAQ ( WP ), инкрементный архиватор командной строки.


Если вы предпочитаете более стандартный инструмент (требующий меньше оперативной памяти), я рекомендую:

      lrzip

lrzipэто эволюция rzipот Коливас .
lrzipобозначает два имени: Long Range ZIP и Lzma RZIP .
lrzipчасто лучше чем xz(другой популярный инструмент сжатия).
Александр Риччио также рекомендует lrzip.


Мой любимый:

      zpaq

«Архиватор эксперт» , Мэтт Махони , интенсивно работал над PAQ алгоритмами в течение десяти лет и обеспечивает наилучший компромисс между CPU / ресурсами памяти и уровнем сжатия.

Тем не менее, последняя zpaqверсия не часто упаковывается / доступна в последних дистрибутивах :-(
Я всегда компилирую ее из источников, когда у меня новая машина, и мне нужен очень хороший компрессор: https://github.com/zpaq/zpaq

clone https://github.com/zpaq/zpaq
cd zpaq
g++ -O3 -march=native -Dunix zpaq.cpp libzpaq.cpp -pthread -o zpaq



0

У bz2 сжатие более жесткое, в алгоритме есть больше вариантов поиска избыточности для сжатия.

В gzip гораздо больше инструментов и больше кроссплатформенности. Другие инструменты Windows могут работать с файлами .gz. Это часть http, так что даже веб-браузеры могут это понять.

В Linux есть инструменты, которые позволяют вам работать непосредственно со сжатыми файлами. zgrep и bzgrep могут искать в сжатых файлах.

Если бы только в Linux, я бы использовал bzip2, для немного лучших коэффициентов сжатия.


0

xz сжимает намного лучше, чем bz2, но занимает больше времени. Итак, если ваша цель - максимальное сжатие, а пространство на вашем жестком диске выше (это мой случай с одним заполненным диском на 98% - в то время как я реорганизую свои файловые системы), и вы можете запустить сценарий, чтобы выполнить работу - сделать перерыв и вернуться через 5 минут.

В моем опыте unxz очень быстро распаковывается, и это хорошо для меня каждый день.

bz2 быстрее сжимается, чем xz, но, похоже, не достигает результатов сжатия xz.

Единственный способ сделать эти оценки - запустить тесты для набора общих файлов, которые вы обычно сжимаете / распаковываете, и варьировать параметры, чтобы увидеть, что выходит впереди.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.