Разница между pixz и xz с опцией -T

3582
Dertalai

Я пытаюсь сжать 100 ГБ с хорошим соотношением, поэтому я решил использовать xz. Мне не нужно, чтобы он был очень быстрым, но, поскольку у меня 8-поточный процессор, мне было интересно, как ими воспользоваться.

Я обнаружил, что есть параллельная реализация xz: pixz. Я также обнаружил, что у xz есть опция многопоточности -T. Я экспериментирую с ними обоими, но не вижу никакой разницы в их поведении.

Какая разница между ними? Почему существуют 2 параллельные реализации для xz?

Редактировать: я обнаружил, что есть еще один: pxz.

3
Какую разницу вы проверили? Размер сжатого файла или время сжатия? Я думаю, pixz был запущен до того, как xz реализовал параллельный вариант. PS: попробуйте [lrzip by kolivas] (http://ck.kolivas.org/apps/lrzip/), он может найти дублированные части файла и лучше сжать. osgx 9 лет назад 1
Я задавался вопросом о размерах и времени. Возможно, каждый из них был оптимизирован для разных обстоятельств, таких как доступность свободной памяти, количество процессоров и т. Д. Спасибо за подсказку lrzip, я этого не знал. Dertalai 9 лет назад 0

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

16
vasi

I'm the author of pixz. As speculated above, I did write pixz before threading support was added to xz. I like to think that pixz prodded Lasse Collin to add multi-threading support to xz sooner.

There are still some differences between pixz and xz, of course. In xz's favour:

  • It has far more options
  • It's been tested by many more people
  • It probably has better code quality—pixz is a prototype gone rampant ;)

But there are still some reasons I like to use pixz:

  • It's much smaller, and easier to comprehend
  • It supports multi-threaded decompression, which xz does not
  • It has special behaviour on tarballs: While performing compression, it also creates an index of all the files in the tarball. This allows a single file to be extracted quickly, even if the tarball is huge.
Никогда не слышал о `pixz` раньше, но намереваюсь использовать его сейчас только для этого последнего пункта Mark K Cowan 7 лет назад 1
Совместим ли формат `pixz` с включенным индексом с классическим инструментом xz? Как входной файл разделен при параллельном сжатии? osgx 7 лет назад 0
Формат pixz совместим с xz. Если pixz добавляет индекс, он немного изменит выходные данные после распаковки с помощью xz, но единственное изменение будет после маркера End-Of-Archive tar и, следовательно, будет игнорироваться tar. Если вы не хотите индексировать, вы можете отключить его с помощью опции '-t'. vasi 7 лет назад 1
Разделение входного файла на блоки основано на: * Размере словаря xz, который зависит от уровня сжатия. Для уровня по умолчанию «-6» это 8 МБ. См. [Xz manpage] (https://www.freebsd.org/cgi/man.cgi?query=xz&sektion=1&manpath=FreeBSD+8.3-RELEASE) для получения более подробной информации. * Множитель, предоставляемый с опцией '-f'. По умолчанию это 2.0. Поэтому размер блока по умолчанию будет 16 МБ. Если вы хотите получить больше информации о pixz, ознакомьтесь с [документами] (https://github.com/vasi/pixz/blob/master/src/pixz.1.asciidoc). vasi 7 лет назад 2

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