Плюсы и минусы bzip против gzip?

122

Я знаю gzip много лет, недавно я увидел, как bzip используется на работе. Являются ли они в основном эквивалентными, или есть существенные плюсы и минусы одного из них над другим?

ripper234
источник
2
Хотя это старый вопрос с правильным и правильным ответом, я хотел бы указать людям на этот результат Google: tukaani.org/lzma/benchmarks.html, так как он разбивает его дальше
Angry 84
Разве bzip для сжатия и gzip для архивирования?
juniorRubyist
@juniorRubyist источник?
ripper234
Я только что услышал это. Я забыл где.
juniorRubyist
Нет упоминания о произвольном доступе? stackoverflow.com/questions/14225751
neverMind9

Ответы:

147

Gzip и bzip2 функционально эквивалентны. (Когда-то был bzip, но, похоже, он полностью исчез с лица земли.) Другие распространенные форматы сжатия: zip, rar и 7z; эти три файла выполняют сжатие и архивирование (упаковывая несколько файлов в один). Вот некоторые типичные оценки с точки зрения скорости, доступности и типичной степени сжатия (обратите внимание, что эти оценки несколько субъективны, не воспринимайте их как Евангелие):

decompression speed (fast > slow): gzip, zip > 7z > rar > bzip2
compression speed (fast > slow): gzip, zip > bzip2 > 7z > rar
compression ratio (better > worse): 7z > rar, bzip2 > gzip > zip
availability (unix): gzip > bzip2 > zip > 7z > rar
availability (windows): zip > rar > 7z > gzip, bzip2

Как видите, нет явного победителя. Если вы хотите полагаться на программы, которые, вероятно, уже установлены, используйте zip в Windows (или, если возможно, самораспаковывающиеся архивы, поскольку Windows не поставляется с любым из них) и gzip в unix. Если вы хотите максимальное сжатие, используйте 7z.

Rar также имеет недостаток в том, что, насколько я знаю, нет свободного программного обеспечения, которое создает архивы rar или может распаковать все архивы rar. Другие форматы имеют свободную реализацию и не имеют (серьезных) патентных претензий.

жилль
источник
2
Насколько я могу судить, все версии Windows, начиная с XP, могут открывать zip-файлы непосредственно с помощью файлового менеджера
Lie Ryan
22
@ new123456 В OpenBSD gzip находится в базовой системе, но bzip2 должен быть установлен из пакета. Многие маршрутизаторы * WRT включают gzip, но не bzip2.
Жиль
2
@ Жиль Я могу подтвердить, что в моей версии DD-WRT: 08/12/10 (версия SVN: 14929) нет bzip2, но есть gzip.
Урда
11
@mlainz Оригинальное исследование. Это не Википедия.
Жиль
3
кажется, что он полностью исчез - старая bzipисчезла, потому что использовала запатентованное алгоритмическое кодирование. Из-за патента он был перепроектирован для использования кодирования Хаффмана. Во время этого редизайна были добавлены новые функции и улучшения. Фундаментальная вещь, которая делает его уникальным алгоритмом сжатия, - преобразование Берроуза-Уилера, которое осталось неизменным в обеих версиях.
лес
24

Насколько я могу судить, gzip работает быстрее, а bzip - лучше (меньше).

Ли Райан
источник
Кроме того, gzip, кажется, немного лучше поддерживается, особенно в Windows ..
Dentrasi
5
@Dentrasi: winrar / 7zip поддерживают оба, в чем проблема?
Уайткварк
@whitequark: быть широко поддерживаемым в основном важно для Unix, поскольку пользователи могут не иметь root-доступа и работать с тем, что уже установлено. Также относится к средам Windows, где пользователь не имеет прав администратора (школы / библиотеки / и т. Д.).
Мэтью
4
@ Мэтью, вам не нужны права администратора, чтобы использовать много портированных бесплатных программ, включая 7zip.
Уайткварк
1
@IQAndreas: некоторые тесты: 1 , 2 , 3
Lie Ryan
5

Алгоритмы имеют разное время, память, пространственные компромиссы. Имейте в виду, что эти алгоритмы были написаны довольно давно, и ваш смартфон имеет во много раз больше процессоров, чем настольные компьютеры того времени.

Ваш выбор между универсальностью (.gz) и немного большим сжатием (.bz2). Только вы можете сказать, что вас волнует больше.

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

Рич Гомолка
источник
4

Вот список сайтов, которые тестируют алгоритмы сжатия, чтобы найти только bzip и gzip, вам придется немного покопаться, но на большинстве сайтов будут перечислены характеристики алгоритмов. Таким образом, вы можете сравнить, что важно для вас, размер (степень сжатия), время, память, процессор.
http://www.maximumcompression.com/benchmarks/benchmarks.php

Скотт МакКленнинг
источник
1

По моему опыту, bzip предлагает неизменно лучшие коэффициенты сжатия, чем gzip. Плюс с 7zip в качестве менеджера и алгоритмом bzip, 7zip может использовать многоядерные процессоры.

Сатьяджит Бхат
источник
1

Согласно http://tukaani.org/lzma/benchmarks.html , gzip сжимает в два раза быстрее, чем bzip2, и распаковывает в десять раз быстрее.

Например, для использования с кэшированием s3, на travis и т. Д., Где вам нужна скорость сжатия / распаковки, а не только небольшие размеры, gzip может быть хорошим компромиссом.

Хью Перкинс
источник