В моем приложении мне нужно сделать сжатие журналов, которые являются текстовыми файлами.
Кажется, что bzip2
и gzip
имеют одинаковую степень сжатия.
Это верно?
В моем приложении мне нужно сделать сжатие журналов, которые являются текстовыми файлами.
Кажется, что bzip2
и gzip
имеют одинаковую степень сжатия.
Это верно?
Ответы:
Как правило, bz2 имеет лучшую степень сжатия в сочетании с лучшими функциями восстановления.
OTOH, GZ быстрее.
Говорят, что xz даже лучше, чем bz2, но я не знаю, каково время.
-1
он не такой медленный, но с настройками по умолчанию он довольно медленный.
Последнее обновление maximumcompression.com - июнь-2011 (ответ обновлен в октябре-2015).
Поэтому на этом веб-сайте не упоминается
действующий текстовый компрессор в мире :
cmix
Соревнования / контрольные показатели:
cmix
это не победитель, потому что требует слишком много оперативной памяти, более 20 ГБ)Детали:
Байрон Нолл активно развивается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
Может быть, вы могли бы взглянуть на эти тесты , особенно часть, тестирующую сжатие файлов журнала .
я сделал тест для тестирования, чтобы сжать следующее:
204MB папка (с 1600 файлами HTML)
результаты
7zip => 2.38 MB
winrar => 49.5 MB
zip => 50.8 MB
gzip => 51.9 MB
так что 7zip - лучший среди них, вы можете получить его здесь
http://www.7-zip.org/
У bz2 сжатие более жесткое, в алгоритме есть больше вариантов поиска избыточности для сжатия.
В gzip гораздо больше инструментов и больше кроссплатформенности. Другие инструменты Windows могут работать с файлами .gz. Это часть http, так что даже веб-браузеры могут это понять.
В Linux есть инструменты, которые позволяют вам работать непосредственно со сжатыми файлами. zgrep и bzgrep могут искать в сжатых файлах.
Если бы только в Linux, я бы использовал bzip2, для немного лучших коэффициентов сжатия.
xz сжимает намного лучше, чем bz2, но занимает больше времени. Итак, если ваша цель - максимальное сжатие, а пространство на вашем жестком диске выше (это мой случай с одним заполненным диском на 98% - в то время как я реорганизую свои файловые системы), и вы можете запустить сценарий, чтобы выполнить работу - сделать перерыв и вернуться через 5 минут.
В моем опыте unxz очень быстро распаковывается, и это хорошо для меня каждый день.
bz2 быстрее сжимается, чем xz, но, похоже, не достигает результатов сжатия xz.
Единственный способ сделать эти оценки - запустить тесты для набора общих файлов, которые вы обычно сжимаете / распаковываете, и варьировать параметры, чтобы увидеть, что выходит впереди.