Должен ли я использовать сжатие xz или lzma?

29

Мне было интересно, поскольку в Ubuntu 10.10 у меня есть возможность создавать архивы xz и lzma. Должен ли я перейти на xz?

http://en.wikipedia.org/wiki/Xz

http://en.wikipedia.org/wiki/Lzma

NightwishFan
источник
Обратите внимание, что есть также более новый тип архива lz, который в основном был представлен «после обсуждения» stackoverflow.com/a/49456056/32453, поэтому не путайте его с lzmaупомянутым здесь :)
rogerdpack

Ответы:

12

Этот тест предоставляет некоторую полезную информацию об этой проблеме. Кажется, что LZMA имеет несколько лучшие коэффициенты сжатия и производительность, чем XZ, но XZ обычно предпочтительнее по «практическим причинам» (я не уверен, что это такое).

XZ является реализацией алгоритма lzma2 и лучше сжимает «несжимаемые» данные:

lzma2 - это метод сжатия, используемый компрессором 7-Zip LZMA2. LZMA2 - это модифицированная версия LZMA, которая предлагает лучший коэффициент сжатия для несжимаемых данных (случайные данные увеличиваются примерно на 0,005% по сравнению с 1,35% в исходной LZMA) и может дополнительно сжимать несколько частей больших файлов параллельно, значительно увеличивая скорость сжатия, но с возможным снижением степени сжатия (см. LZMANumBlockThreads). Как и LZMA, он может потреблять много памяти; см. приведенную выше таблицу. Если уровень сжатия не указан, по умолчанию используется макс.

( http://www.jrsoftware.org/ishelp/index.php?topic=setup_compression )

Вы должны быть в порядке, используя либо.

dv3500ea
источник
Из любопытства вы решили, что использовать?
dv3500ea 10.10.10
1
На самом деле после небольшого тестирования кажется, что xz будет выходом из положения. Это также экономит немного сжатия (10 МБ иногда) на двоичном материале по lzma.
NightwishFan
8
Это не был правильный ответ, в отношении «ОК, используя либо». Было известно, что даже в тот момент, когда он публиковал этот вопрос, файлы .lzma были полностью заменены на .xz в ближайшем будущем. Автор LZMA-Utils публично заявил, что они устарели и используют xz-utils с 5.00 года. Последний выпуск LZMA-Utils был 2008-07-30, даже в то время, когда ему было лет. С точки зрения сжатия, улучшения могут не быть определяющим фактором. (по иронии судьбы, если так и было) Но «политические» причины должны были стать веской причиной для использования XZ-Utils и избегать создания новых архивов .lzma.
Дж. М. Беккер
1
@TechZilla Рассматривали ли вы опубликовать свое мнение об этом в качестве альтернативного ответа?
12ndrük
1
Практические причины для LZMA2 - поддержка многопоточности. Производительность одиночного потока и степень сжатия немного ниже, но в системе с несколькими используемыми ядрами ожидается, что LZMA2 будет намного быстрее при декодировании.
Джонатан Болдуин
42

Я не согласен с выводом @ dv3500ea: «Хорошо, используя любой», так как это было неуместно. .lzmaИзвестно, что даже в опубликованную дату / время файлы были полностью заменены .xz. Автор обоих Utils публично заявил , что пользователи должны перейти на XZ-Utils ≥ 5.00. Последний выпуск LZMA-Utils был 2008-07-30 и прекращен.

LZMA Utils - это устаревшее программное обеспечение для сжатия данных с высокой степенью сжатия. Утилиты LZMA больше не разрабатываются, хотя критические ошибки могут быть исправлены, если их исправление не требует огромных изменений в коде.

Пользователи LZMA Utils должны перейти на XZ Utils. XZ Utils поддерживают устаревший .lzmaформат, используемый LZMA Utils, а также могут эмулировать инструменты командной строки LZMA Utils. Это должно сделать переход от LZMA Utils к XZ Utils относительно простым.

Определяющим фактором может быть не сжатие, хотя по иронии судьбы это было для этого примера. «практические причины» являются очевидной и важной причиной использования XZ-Utils. Кроме того, .xzформат позволяет вам указать алгоритмы сжатия и фильтры, чтобы .xzфайлы могли использовать либо LZMA, либо LZMA2. Избегайте создания новых .lzmaфайлов, они считаются устаревшим форматом.

Что касается даже хранения LZMA-Utils: не надо. XZ-Utils поддерживает устаревшие .lzmaфайлы. У этого также есть обертки для сценариев, все еще использующих LZMA-Utils. Если все эти причины все еще были недостаточны, Ubuntu удалял устаревшие lzma-utils из своего хранилища.

Дж. М. Беккер
источник
1
«Автор обоих Utils публично заявил, что пользователям следует перейти на XZ-Utils ≥ 5.00». Нужна цитата. :-)
Фахим Митха
@FaheemMitha: Так как это пост, а не учебная ссылка или оригинальное исследование, цитата будет только страницей проекта. Я предположил, что, поскольку это было от автора LZMA-Utils, и он написал ОБА служебные наборы с намерением xz-utils заменить устаревшие LZMA-Utils, это было само собой разумеющимся. ... Но для тех, кто хочет получить более подробную информацию, tukaani.org/lzma .
Дж. М. Беккер
3

Определенно, вы не должны использовать lzma, как говорят другие.

Антонио Диас Диаз, автор формата lzip, говорит, что формат Xz не подходит для долгосрочного архивирования . Если вы хотите сделать резервную копию важных файлов, подумайте о других форматах файлов, таких как bzip2, в котором есть инструмент восстановления после повреждения.

criticabug
источник
XZ считается небезопасным для некоторых. Это не относится к lzma, хотя.
oᴉɹǝɥɔ
0

xz является предпочтительным, поскольку он имеет самую высокую степень сжатия. Однако он сжимается медленнее, но компенсирует это сжатием.

Дистанционная графика
источник