Benchmarks
NikPak, RAR 7.00, 7-Zip 23.01 and Info-ZIP 3.0, run one after another on the same machine and the same files.
Method
- Linux x86-64 virtual machine (Intel Xeon, 2.8 GHz). Every tool pinned to one CPU core and run single-threaded.
- Maximum levels: nikpak -m5, RAR -m5 -s, 7-Zip -mx9, ZIP -9. Fast levels: nikpak -m2, RAR -m3 -s, 7-Zip -mx5, ZIP -6.
- All 92 archives were extracted again and compared with the originals: all were identical.
- Public test material: scikit-image photographs, the libxmp MOD collection, LibreOffice gallery sounds, music rendered with TiMidity++, Project Gutenberg books, office files, the Python standard library and C headers.
Archive size at the maximum level
Percentage of the original size, lower is better.
8 BMP images
16 ProTracker MOD files
35 WAV sounds (mono 16-bit)
Music 44.1 kHz stereo 16-bit
Music 22.05 kHz mono 16-bit
Music 22.05 kHz mono 8-bit
Music 48 kHz stereo 24-bit
18 plain-text books
60 office files
General data (11,473 files)
Maximum level: archive size in bytes
The smallest archive in each row is highlighted.
| Test set | Original | NikPak -m5 | RAR 7 -m5 | 7-Zip -mx9 | ZIP -9 |
|---|---|---|---|---|---|
| 8 BMP images | 6,987,840 | 3,557,350 | 4,394,310 | 4,195,043 | 4,974,680 |
| 16 ProTracker MOD files | 2,252,604 | 1,127,607 | 1,264,245 | 1,166,855 | 1,408,085 |
| 35 WAV sounds (mono 16-bit) | 2,991,820 | 1,346,484 | 1,596,971 | 1,484,879 | 1,852,279 |
| Music 44.1 kHz stereo 16-bit | 17,760,408 | 8,731,989 | 10,460,042 | 10,666,922 | 15,225,764 |
| Music 22.05 kHz mono 16-bit | 4,440,136 | 2,458,867 | 2,797,026 | 2,784,080 | 3,736,722 |
| Music 22.05 kHz mono 8-bit | 2,220,090 | 606,840 | 725,416 | 642,341 | 836,989 |
| Music 48 kHz stereo 24-bit | 28,996,592 | 18,198,056 | 21,229,465 | 25,542,036 | 26,980,770 |
| 18 plain-text books | 11,793,318 | 2,741,898 | 3,519,622 | 3,259,868 | 4,223,579 |
| 60 office files | 39,100,915 | 6,887,729 | 11,186,217 | 10,085,779 | 17,399,998 |
| General data (11,473 files) | 190,454,632 | 28,175,618 | 33,606,893 | 28,879,398 | 62,198,510 |
Fast levels: size and creation time
Archive size as a percentage of the original, and creation time on one core. The smallest archive in each row is highlighted.
| Test set | NikPak -m2 | RAR 7 -m3 | 7-Zip -mx5 | ZIP -6 |
|---|---|---|---|---|
| 8 BMP images | 54.0 % · 0.39 s | 63.0 % · 2.1 s | 60.1 % · 3.5 s | 71.2 % · 0.35 s |
| 16 ProTracker MOD files | 52.4 % · 0.61 s | 56.2 % · 0.43 s | 51.9 % · 0.69 s | 62.7 % · 0.10 s |
| 35 WAV sounds (mono 16-bit) | 51.1 % · 0.41 s | 53.6 % · 0.71 s | 49.6 % · 2.0 s | 61.9 % · 0.24 s |
| Music 44.1 kHz stereo 16-bit | 49.2 % · 1.7 s | 59.9 % · 3.6 s | 60.1 % · 14.0 s | 85.7 % · 0.82 s |
| Music 22.05 kHz mono 16-bit | 55.4 % · 0.58 s | 64.1 % · 0.95 s | 62.7 % · 2.1 s | 84.2 % · 0.22 s |
| Music 22.05 kHz mono 8-bit | 27.4 % · 0.77 s | 33.3 % · 0.52 s | 28.9 % · 2.1 s | 38.2 % · 0.32 s |
| Music 48 kHz stereo 24-bit | 62.8 % · 2.1 s | 73.6 % · 7.5 s | 88.1 % · 13.5 s | 93.0 % · 1.2 s |
| 18 plain-text books | 35.2 % · 0.11 s | 30.4 % · 5.5 s | 27.7 % · 11.8 s | 36.0 % · 0.89 s |
| 60 office files | 38.0 % · 0.22 s | 29.5 % · 8.2 s | 26.2 % · 21.9 s | 44.7 % · 1.8 s |
| General data (11,473 files) | 25.3 % · 1.7 s | 18.0 % · 48.2 s | 17.0 % · 93.7 s | 32.9 % · 7.3 s |
General data in detail
190 MB, 11,473 files: Python libraries, C headers and documentation.
| Tool and level | Size (bytes) | % of original | Creation | Extraction |
|---|---|---|---|---|
| NikPak -m5 | 28,175,618 | 14.8 % | 154.3 s | 5.6 s |
| 7-Zip -mx9 | 28,879,398 | 15.2 % | 120.9 s | 6.0 s |
| RAR 7 -m5 -s -md256m | 32,350,575 | 17.0 % | 73.6 s | 7.0 s |
| 7-Zip -mx5 | 32,375,802 | 17.0 % | 93.7 s | 4.5 s |
| NikPak -m4 | 33,295,133 | 17.5 % | 37.8 s | 3.3 s |
| RAR 7 -m5 -s | 33,606,893 | 17.6 % | 72.4 s | 6.7 s |
| RAR 7 -m3 -s | 34,236,198 | 18.0 % | 48.2 s | 5.9 s |
| NikPak -m2 | 48,229,284 | 25.3 % | 1.7 s | 0.90 s |
| RAR 7 -m3 | 56,038,351 | 29.4 % | 20.2 s | 6.9 s |
| ZIP -9 | 62,198,510 | 32.7 % | 28.2 s | 6.9 s |
| ZIP -6 | 62,672,415 | 32.9 % | 7.3 s | 5.4 s |
Reading the results honestly
- NikPak -m5 is the smallest on every set: 2.4 to 31.7 % smaller than 7-Zip -mx9, 10.8 to 38.4 % smaller than RAR 7 -m5 and 19.9 to 60.4 % smaller than ZIP -9.
- Recorded audio: on the 24-bit music 7-Zip saves 12 % and NikPak 37 %, because the NAC codec predicts what general compressors can only match.
- Office files, 31.7 % smaller than 7-Zip, thanks to Deflate recompression. The price at -m5 is time: 81 s against 26 s.
- Text, 15.9 % smaller in half the time: PPMd wins on prose. It decodes as slowly as it encodes, so extraction takes 2.7 s instead of 0.2 s.
- Fast level -m2: 1.7 s for the general set, against 93.7 s for 7-Zip -mx5, 48.2 s for RAR and 7.3 s for ZIP. It is not the smallest on text and source code, which is why -m5 is the default.
- Extraction: 0.9 s (-m2) or 5.6 s (-m5) for the general set, against 6.0 s for 7-Zip, 6.7 s for RAR and 6.9 s for ZIP.
- The cost: -m5 is single-threaded and slower than 7-Zip on large office and source-code sets. A faster maximum level is on the roadmap.
Figures from the NikPak technical guide (section 11.7, NikPak 1.2.0). Measure on your own files: nikpak mt shows what each media filter achieves without writing anything.