Should I use xz or lzma compression?

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


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.


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.


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.