29

I was wondering since in Ubuntu 10.10 I have the ability to create both xz and lzma archives. Should I switch to xz?

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

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

  • Note that there's also a newer lz archive type that has basically been introduced "since this discussion" stackoverflow.com/a/49456056/32453 so don't confuse it with the lzma mentioned here :) – rogerdpack Mar 23 '18 at 18:16
12

This benchmark provides some good information about this issue. It seems that LZMA has slightly better compression ratios and performance than XZ but XZ is generally preferred due to 'practical reasons' (I'm not sure what these are).

XZ is an implementation of the lzma2 algorithm and is better at compressing 'uncompressable' data:

lzma2 is the method of compression employed by the 7-Zip LZMA2 compressor. LZMA2 is a modified version of LZMA that offers a better compression ratio for uncompressible data (random data expands about 0.005%, compared to 1.35% with original LZMA), and optionally can compress multiple parts of large files in parallel, greatly increasing compression speed but with a possible reduction in compression ratio (see LZMANumBlockThreads). Like LZMA, it can consume a lot of memory; see the above table. If a compression level isn't specified, it defaults to max.

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

You should be OK using either.

  • Out of curiosity, did you decide which to use? – dv3500ea Oct 10 '10 at 15:59
  • 1
    Actually after a bit of testing it seems like xz will be the way forward. It also saves quite a bit of compression (10mb somtimes) on binary stuff over lzma. – NightwishFan Oct 13 '10 at 10:13
  • 8
    That was not an appropriate answer, in regards to "OK using either". Even at the time when he posted this question, .lzma files were known to be replaced completely by .xz in the near future. The author of LZMA-Utils has said publicly, they were deprecated and use xz-utils from 5.00 onward. The last LZMA-Utils release was 2008-07-30, even at the time years old. So compression wise, the improvements might not be a huge determining factor. (ironically in case it was) But "political" reasons should have been a significant reason to use XZ-Utils, and avoid making new .lzma archives. – J. M. Becker Jan 22 '12 at 11:17
  • 1
    @TechZilla Have you considered posting your take on this as an alternative answer? – ændrük Oct 5 '12 at 15:55
  • 1
    The practical reasons for LZMA2 are multithreading support. Single threading performance and compression ratio are slightly lower but on a system with several cores used expect LZMA2 to be much faster when decoding. – Jonathan Baldwin Nov 24 '13 at 0:24
42

I disagree with @dv3500ea's conclusion, "OK using either", as it was inappropriate. Even at the posted date/time, .lzma files were known to be replaced completely by .xz. The author of both Utils has said publicly, users should transition to XZ-Utils ≥ 5.00. The last LZMA-Utils release was 2008-07-30, and discontinued.

LZMA Utils are legacy data compression software with high compression ratio. LZMA Utils are no longer developed, although critical bugs may be fixed as long as fixing them doesn't require huge changes to the code.

Users of LZMA Utils should move to XZ Utils. XZ Utils support the legacy .lzma format used by LZMA Utils, and can also emulate the command line tools of LZMA Utils. This should make transition from LZMA Utils to XZ Utils relatively easy.

The determining factor might not be compression, although ironically it was for this example. "practical reasons" are a self-evident, and significant, reason to use XZ-Utils. Additionally the .xz format allows you to specify compression algorithms, and filters, so .xz files can use either LZMA or LZMA2. Avoid creating new .lzma files, they are considered a legacy format.

As for even keeping LZMA-Utils around: don't. XZ-Utils has support for legacy .lzma files. It also has wrappers for scripts still using LZMA-Utils. If all those reasons were still insufficient, Ubuntu dropped legacy lzma-utils from its repository.

  • 1
    "The author of both Utils has said publicly, users should transition to XZ-Utils ≥ 5.00." Citation needed. :-) – Faheem Mitha Feb 13 '14 at 23:48
  • @FaheemMitha: Since this is a post, and not an educational reference or original research, the citation would only be the project page. I assumed since it was from the LZMA-Utils author, and he wrote BOTH utility sets with intention of xz-utils replacing legacy LZMA-Utils, it was self-evident. ...But For anyone who want's to get more details, tukaani.org/lzma. – J. M. Becker Oct 3 '14 at 17:05
3

Definitely you shouldn't use lzma as others say.

Antonio Diaz Diaz, author of lzip format, says Xz format is inadequate for long-term archiving. If you want to backup your important files, consider other file formats such as bzip2, which has corruption recovery tool.

  • xz is considered unsafe by some. That doesn't apply to lzma though. – oᴉɹǝɥɔ Apr 10 '18 at 18:38
0

xz is preferred due to it having the highest compression rate. However, it compresses slower, but it makes up for it with its compression.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.