115

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

6 ответов6

141

Gzip и bzip2 функционально эквивалентны. (Когда-то был бзип, но он, похоже, полностью исчез с лица мира.) Другими распространенными форматами сжатия являются 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. Другие форматы имеют свободную реализацию и не имеют (серьезных) патентных претензий.

23

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

5

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

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

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

3

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

1

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

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

1

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

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