7-Zip Compression Ratio: What You Actually Get, and What Costs What

By Hieu Dinh

7-Zip Compression Ratio: What You Actually Get

People ask about 7-Zip's compression ratio expecting a number. There isn't one — and chasing the setting that produces the best ratio is usually the wrong optimisation entirely.

The input matters roughly ten times more than the settings. A folder of source code will compress by 90% at any level. A folder of MP4s will compress by 2% at every level, including the one that takes forty minutes. Knowing which category your files fall into is worth more than any amount of dictionary tuning.

This guide covers realistic ratios by content type, what the compression levels actually cost, and the specific settings that are worth changing.


First: Two Definitions of "Ratio"

Worth clearing up, because sources use both and it makes comparisons confusing.

  • Compression ratio as a percentage of original size. A 100 MB file becoming 30 MB is "30%". Lower is better.
  • Space saving. The same result is "70% reduction". Higher is better.

7-Zip's own interface reports the first, showing compressed size against original. This article uses percentage reduction — "compresses by 70%" means the archive is 30% of the original — because that is how most people think about it.


Realistic Ratios by File Type

Approximate figures from typical real-world content at 7-Zip's Normal level, 7z format:

ContentTypical reductionWhy
Plain text, logs, CSV85–95%Enormous redundancy; repeated tokens and structure
Source code80–92%Repeated keywords, identifiers, indentation
SQL / database dumps80–95%Highly repetitive row structure
Uncompressed BMP / TIFF60–90%Large flat regions with no prior compression
WAV audio30–50%Some redundancy, but noise floors resist
Executables and DLLs50–70%Helped substantially by 7-Zip's BCJ2 filter
DOCX / XLSX / PPTX2–15%Already ZIP archives internally
PDF0–10%Internal streams already Deflate-compressed
JPEG / PNG / HEIC / WebP0–3%Already compressed
MP3 / AAC / Opus0–2%Already compressed
MP4 / MOV / MKV0–2%Already compressed, aggressively

The pattern is consistent: general-purpose compression works on redundancy, and modern media formats have already removed theirs. Every codec is a specialised compressor. By the time an MP4 exists, a purpose-built video encoder has already exploited spatial and temporal redundancy far more thoroughly than LZMA2 could. There is nothing left.

This is not a 7-Zip limitation. WinRAR, ZIP, Keka, macOS Archive Utility — every archiver hits the same wall, because the wall is information theory, not implementation. What lossless compression actually is explains the mechanism.


Compression Levels: What Each Costs

7-Zip exposes six levels. The differences between them are smaller than the labels suggest.

LevelDictionary (default)Relative timeTypical gain vs Normal
Store (0)InstantNo compression at all
Fastest (1)64 KB~0.1×10–20% worse
Fast (3)1 MB~0.3×5–10% worse
Normal (5)16 MB1× (baseline)
Maximum (7)32 MB~2–3×1–3% better
Ultra (9)64 MB~4–8×2–5% better

Read the right-hand column carefully. Ultra typically buys a few percent for several times the time and memory. On a 2 GB compressible archive that is maybe 60 MB saved for half an hour of extra CPU.

That trade is worth taking in one situation: an archive compressed once and downloaded many times. Software distribution, a dataset release, a backup written once and stored for years. The cost is paid once; the benefit multiplies.

For everything else — sharing a folder with a colleague, archiving a project, freeing up disk space — Normal is correct, and the time you save is worth more than the megabytes.

Store (level 0) deserves a mention. If you are archiving a folder of MP4s or JPEGs purely to bundle them into one file, use Store. You get the container with none of the CPU cost, because the compression was never going to achieve anything anyway.


The Settings That Actually Matter

Beyond the level slider, four settings change results meaningfully.

Dictionary size

The dictionary is how far back LZMA2 can look for repeated data. A 64 MB dictionary can match a sequence against anything in the previous 64 MB; a 1 MB dictionary cannot.

This matters when you have large files with distant repetition — several similar VM images, multiple versions of a large dataset, a folder of near-identical documents. If the duplicate content is 200 MB apart and your dictionary is 64 MB, the compressor never sees the match.

The cost is memory, and it is steep: LZMA2 compression needs roughly 10–11× the dictionary size in RAM. A 64 MB dictionary wants around 700 MB. A 512 MB dictionary wants over 5 GB. Multiply again for multi-threading, since each thread carries its own buffers.

Decompression is much cheaper — a little more than the dictionary size — but note that whoever extracts the archive needs that memory too. A 1 GB dictionary makes a beautifully small archive that someone on an older machine may not be able to open.

Solid archive mode

By default 7z compresses files as one continuous stream rather than individually. This is the single biggest reason 7z beats ZIP on folders of many small files: ZIP compresses each file separately and can never exploit similarity between them, while 7z treats the whole set as one stream and finds redundancy across file boundaries.

On a folder of 5,000 similar HTML files or source files, solid mode can be the difference between a 40% and a 90% reduction.

The trade-off: extracting one file from a solid block requires decompressing everything up to it, and corruption in the block can affect everything after it. The solid block size setting lets you cap this — a 512 MB block size keeps most of the benefit while limiting how much must be decompressed for a single-file extraction.

Compression method

  • LZMA2 — the default. Multi-threaded, good general-purpose ratio.
  • LZMA — single-threaded, occasionally marginally better ratio, much slower on modern CPUs.
  • PPMd — often better than LZMA2 on natural-language text. If you are archiving plain text, ebooks, or large document collections, PPMd is worth testing.
  • BZip2 — largely superseded; slower and worse than LZMA2 for most content.
  • BCJ2 — not a standalone method but a filter, applied automatically to executables. It converts absolute jump addresses to relative ones, making the code far more compressible. This is why 7-Zip does notably well on program files.

Thread count

More threads means faster compression and slightly worse ratio, because the stream is split into chunks that cannot reference each other. The penalty is small — usually well under 1% — and almost always worth the speed. Leave it at the default.


7z vs ZIP vs RAR

Rough expectations on genuinely compressible content:

FormatRatioSpeedCompatibility
7z (LZMA2)BestSlowestNeeds 7-Zip, Keka, or similar
RARClose to 7zFaster than 7zNeeds software; cannot be created for free
ZIP (Deflate)WorstFastestUniversal — opens everywhere

The decision is usually not about ratio. ZIP is the right choice for anything you are sending to another person, because it opens natively on Windows and macOS with no software and no instructions. 7z is the right choice for archiving and storage, where you control both ends and the size actually matters.

7z vs ZIP goes into the format differences in depth, and best zip program covers the tooling. On macOS, Keka vs The Unarchiver is the relevant comparison — Keka drives the same LZMA2 engine, so everything in this article applies to its 7z output.


How to Actually Maximise Your Ratio

In order of impact:

  1. Sort by content type before archiving. Put compressible files in one archive at Normal, and already-compressed media in another at Store. You will finish sooner and the total size will be nearly identical to compressing everything at Ultra.
  2. Keep solid mode on for many small files. This is the biggest single win on typical folders.
  3. Raise the dictionary only if you have large files with distant duplication, and only if you and your recipients have the RAM.
  4. Try PPMd for large text collections. Test it against LZMA2 on a sample; the difference can be substantial.
  5. Deduplicate first. No compressor beats simply not archiving the same file three times.
  6. Only then consider Ultra, and only if the archive will be extracted many times.

When Archiving Is the Wrong Answer

Step back to why you are compressing.

If the goal is exact preservation — a project archive, a backup, source code, documents you may need byte-identical later — archiving is right, and 7-Zip is an excellent choice.

If the goal is making files small enough to send or store, and those files are video, photos or PDFs, archiving cannot help you. You already saw the table: 0–3%. You can spend an hour at Ultra settings and watch a 4 GB folder become 3.9 GB.

The fix is to re-encode rather than archive. Lower a video's bitrate, convert HEVC where appropriate, downscale resolution, reduce JPEG quality, downsample the images embedded in a PDF. These are lossy operations — you are discarding information rather than repacking it — but the discarded information is largely imperceptible, and the size reduction is 70–90% instead of 2%.

Compresto does exactly that on macOS. Point it at a folder of video, images and PDFs; it re-encodes them with hardware acceleration, targets a size or quality level you choose, and keeps everything local on your Mac. A folder that 7-Zip could not meaningfully shrink typically comes out a fraction of its original size.

Use 7-Zip when the bytes must survive intact. Use Compresto when the file just needs to be smaller.

Download Compresto for Mac →


Frequently Asked Questions

What is the maximum compression ratio 7-Zip can achieve?

There is no fixed maximum — it depends entirely on input redundancy. A file of a million identical characters compresses to almost nothing. Random data cannot be compressed at all, and the archive will be slightly larger than the original due to headers.

Does 7-Zip Ultra damage files?

No. Every 7-Zip compression level is lossless; the extracted files are byte-identical to the originals. Higher levels only cost more time and memory.

Why is my 7z archive larger than the original files?

You are archiving already-compressed data — media, or an existing archive. There is no redundancy left to exploit, so the container overhead exceeds the compression gain. Use Store level in that situation.

Is 7-Zip's compression ratio better than WinRAR's?

Usually yes, by a modest margin on most content, at the cost of longer compression times. RAR compresses faster at comparable settings and has stronger built-in recovery-record support.

How do I compress files to a specific size with 7-Zip?

You cannot target a size directly — lossless compression output size is determined by the input, not by a setting. You can split an archive into fixed-size volumes, which is a different thing. To actually hit a size target you need lossy re-encoding of the underlying media.

Does compression level affect extraction speed?

Only slightly. Extraction is dominated by dictionary size and archive size, not by the level used to create it. Very large dictionaries do raise the memory needed to extract.

Ready to compress your files? Join thousands of creators using Compresto ⚡