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

15099
user710818

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

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

Это верно?

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

6 ответов на вопрос

5
olibre

Last update of maximumcompression.com is June-2011 (answer updated in Oct-2015)
Therefore this website does not mention
the current champion text compressor worldwide:

cmix

Competitions/Benchmarks:

Details:
Byron Knoll is actively developping cmix as libre software (GPL) since 2013 based on the book Data Compression Explained by Matt Mahoney. Matt Mahoney also maintains some of the above benchmarks and proposes ZPAQ (WP), a command line incremental archiver.


If you prefer a more standard tool (requiring less RAM) I recommend:

lrzip

lrzip is an evolution of rzip by Con Kolivas.
lrzip stands for two names: Long Range ZIP and Lzma RZIP.
lrzip is often better than xz (another popular compression tool).
Alexander Riccio also recommends lrzip.


My favorite is:

zpaq

The "archiver expert", Matt Mahoney, has intensively worked on PAQ algorithms for ten years and provide the best compromise between CPU/memory resources and compression level.

However, the last zpaq version is not often packaged/available on recent distro :-(
I always compile it from sources when I have a new machine and I need a very good compressor: 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
glglgl

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

OTOH, GZ быстрее.

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

xz медленнее, чем bzip2. osgx 12 лет назад 0
xz не просто медленнее, а намного медленнее, файл 300 Мб занял около 30 секунд для сжатия bzip2. Я убил xz после того, как он сжимался дольше 5 минут Tebe 7 лет назад 0
@ Копать_Шо_я_нашел Я думаю, это сильно зависит от выбранного вами уровня сжатия. С `-1` он не такой медленный, но с настройками по умолчанию он довольно медленный. glglgl 7 лет назад 0
4
Cédric Julien

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

Ссылка не работает. Rumplin 6 лет назад 0
0
Rich Homolka

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

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

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

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

0
Tom

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

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

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

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

0
Abdalla Mohamed Aly Ibrahim

i have made a benchmark to test to compress the following:
204MB folder (with 1,600 html files)
results

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

so the 7zip is the best among them you can get it from here
http://www.7-zip.org/

Похожие вопросы