Плюсы и минусы bzip и gzip?

Плюсы и минусы bzip и gzip?

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

решение1

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

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

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

Форматы non-Unix (zip, rar, 7z) не сохраняют все метаданные Unix (владение, разрешения). Если вам это нужно, используйте сжатый tar.

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

решение2

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

решение3

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

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

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

решение4

Заhttp://tukaani.org/lzma/benchmarks.htmlgzip сжимает в два раза быстрее, чем bzip2, и распаковывает в десять раз быстрее.

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

Связанный контент