LZMA Compression

LZMA, short for Lempel-Ziv-Markov chain-Algorithm, is a data compression algorithm. 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.

The LZMA compression algorithm is characterized by:

  • High compression ratio.
  • Variable dictionary size (up to 4 GB).
  • Compressing speed: about 1 MB/s on 2 GHZ CPU.
  • Decompressing speed: about 10-20 MB/s on 2 GHZ CPU.
  • Small memory requirements for decompressing (depends on dictionary size).
  • Supporting multi-threading and P4's hyper-threading.
  • Solid compressing.
  • Archive headers compressing.
  • Small code size for decompressing.

Here are some performance and memory requirements for LZMA.

  • Fastest
    • Compressing Speed: 4.5 MB/s
    • Decompressing Speed: 15 MB/s
    • Memory for Compressing: 3 MB
    • Memory for Decompressing: 3 MB
  • Fast
    • Compressing Speed: 3 MB/s
    • Decompressing Speed: 15 MB/s
    • Memory for Compressing: 10 MB
    • Memory for Decompressing: 3 MB
  • Normal
    • Compressing Speed: 2.2 MB/s
    • Decompressing Speed: 15 MB/s
    • Memory for Compressing: 54 MB
    • Memory for Decompressing: 6 MB
  • Good
    • Compressing Speed: 1.8 MB/s
    • Decompressing Speed: 15 MB/s
    • Memory for Compressing: 192 MB
    • Memory for Decompressing: 18 MB
  • Best
    • Compressing Speed: 1.6 MB/s
    • Decompressing Speed: 15 MB/s
    • Memory for Compressing: 709 MB
    • Memory for Decompressing: 66 MB

NoteThe benchmarks were processed on a machine with AMD Athlon 64 3800+.

TipThe Advanced Installer LZMA implementation is based on LZMA SDK developed by Igor Pavlov and uses the 7z archive format. The LZMA SDK is licensed under the terms of CPL with Special Exception. For more information, please visit the 7-zip Home Page.