13

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

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

Это верно?

6 ответов6

5

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

      cmix

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

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


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

      lrzip

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


Мой любимый:

      zpaq

"Эксперт по архивированию", Мэтт Махони, интенсивно работал над алгоритмами PAQ в течение десяти лет и обеспечивает лучший компромисс между ресурсами ЦП / памяти и уровнем сжатия.

Однако последняя версия 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
4

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

OTOH, GZ быстрее.

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

4

Может быть, вы могли бы взглянуть на эти тесты, особенно часть, тестирующую сжатие файлов журнала.

0

я сделал тест для тестирования, чтобы сжать следующее:
Папка 204 МБ (с 1600 файлами HTML)
Результаты

7zip =>     2.38 MB
winrar =>   49.5 MB
zip =>      50.8 MB
gzip =>     51.9 MB

так что 7zip лучший среди них вы можете получить здесь
http://www.7-zip.org/

0

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

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

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

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

0

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .