LZMA
From openSUSE
The Lempel-Ziv-Markov chain-Algorithm (LZMA) is an algorithm for data compression in development since 1998 and used in the 7z format of the 7-Zip archiver. It uses a dictionary compression scheme somewhat similar to LZ77 and features a high compression ratio (generally higher than bzip2) and a variable compression-dictionary size.
Since openSUSE 11.0, openSUSE no longer uses bzip2, but switched to LZMA for the RPM payload.
Contents |
Comparisons to Bzip2
Some figures of comparison are available from Stephan Kulow's blog post. The test features firstly some comparisons of compression (with coreutils as an example):
bzip2
-rw-r--r-- 1 coolo suse 36966400 13. Mär 09:42 coreutils-6.10.tar 8.61user 0.05system 0:08.66elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k 0inputs+11936outputs (0major+2007minor)pagefaults 0swaps -rw-r--r-- 1 coolo suse 6110179 13. Mär 09:45 coreutils-6.10.tar.bz2.9
LZMA
5.83user 0.04system 0:05.88elapsed 100%CPU (0avgtext+0avgdata 0maxresident)k 0inputs+10720outputs (0major+3271minor)pagefaults 0swaps -rw-r--r-- 1 coolo suse 5488129 13. Mär 09:48 coreutils-6.10.tar.lzma.2
Or:
42.07user 0.10system 0:42.27elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k 0inputs+8576outputs (0major+6768minor)pagefaults 0swaps -rw-r--r-- 1 coolo suse 4385224 13. Mär 09:50 coreutils-6.10.tar.lzma.5
As you can easily see, lzma -2 beats bzip2 -9 both at size and compression speed (using slightly more memory).
Using higher compression ratios than -2 are no longer win-win. For example using -5 will gain another 1MB of disk space while taking 5x as long for the compression than bzip2 and requiring twice as much memory.
Decompression
LZMA also offers significant benefits for decompression speeds:
bzip2
Uncompressing the bzip.9:
1.81user 0.00system 0:01.82elapsed 100%CPU (0avgtext+0avgdata 0maxresident)k 0inputs+0outputs (0major+1068minor)pagefaults 0swaps
LZMA
Uncompressing the lzma.2:
0.80user 0.00system 0:00.83elapsed 97%CPU (0avgtext+0avgdata 0maxresident)k 0inputs+0outputs (0major+824minor)pagefaults 0swaps
That's 2.3 times faster than bzip2.
Uncompressing the lzma.5:
0.69user 0.01system 0:00.70elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k 0inputs+0outputs (0major+1080minor)pagefaults 0swaps
2.6 times faster.
Conclusion
LZMA provides significant benefits over bzip2 for users:
- Smaller downloads (higher compression)
- Faster Installation of packages (faster decompression)
For distributions:
- More space for software on physical media (installation CD/DVD/USBs)
- Less bandwidth usage (because of smaller packages)

