Skip to content

Benchmarks

Every measurement, the machine behind it, and the cases Arca loses.

Last updated

These numbers come from specific machines and should not be read as a general advantage. Each one comes with its method, including the cases where Arca loses.

Requirements

Ryzen 9 5900X, Linux. Everything in this section and the next is reproduced by one script, which downloads the Silesia corpus, pins it by hash and prints the machine and tool versions it ran on:

Terminal
cargo build --releasenix-shell -p hyperfine zip unzip _7zz --run 'bash bench.sh'
RequirementTargetMeasuredOthers
R1 · cold start, list a one-entry zip< 15 ms0.8 msunzip 2.0 · 7z 2.5
R2 · list 6,000 entries< 200 ms3.1 msunzip 18.6 · 7z 71.8
R3 · scaling to 2 threads≥ 1.6×1.79×90% efficiency
Terminal
hyperfine -N --warmup 20 'arca list tiny.zip' 'unzip -l tiny.zip' '7zz l tiny.zip'hyperfine -N --warmup 5 'arca list list-6000.zip' 'unzip -l list-6000.zip' '7zz l list-6000.zip'hyperfine -N --prepare 'rm -f out.zip' \  'taskset -c 0,1 arca create out.zip corpus -c deflate -j 1' \  'taskset -c 0,1 arca create out.zip corpus -c deflate -j 2'

Compression

The Silesia corpus, 211.9 MB cut into 120 equal files, pinned to two physical cores.

ToolTimeSize
Arca, zstd436 ms66.87 MB
Arca, deflate1012 ms67.62 MB
zip -65746 ms68.34 MB
7-Zip zip, -mx57877 ms65.81 MB
Terminal
hyperfine -N --prepare 'rm -f out.zip' \  'taskset -c 0,1 arca create out.zip corpus -c zstd' \  'taskset -c 0,1 arca create out.zip corpus -c deflate' \  'taskset -c 0,1 zip -qr -6 out.zip corpus' \  'taskset -c 0,1 7zz a -tzip -mx5 out.zip corpus'

With Zstandard, Arca was 13.2× faster than zip and 18.1× faster than 7-Zip; 7-Zip still wrote the smallest archive, 1.6% below Arca’s. With Deflate, Arca was 5.7× faster than zip and its archive 1.1% smaller.

Deflate against deflate on Windows 11

16 threads, best of 3.

CorpusArca7-Zip -mx5Arca size7-Zip size
5,358 source files, 54.8 MB0.710 s0.627 s13,729,30813,747,705
16 files, 287 MB0.402 s2.285 s56,757,28454,753,868
Terminal
arca create c1.zip src7z a -tzip -mx5 c2.zip src

With large files Arca compressed 5.7× faster at the cost of 3.7% in size; with many small files 7-Zip was somewhat ahead at the same size. The winner depends on the corpus.

Parallel extraction

Windows 11, 16 threads, 287 MB in 16 text files, best of 3, deleting the output before each pass.

ToolTime
Arca, 16 threads0.207 s
Arca, -j 10.686 s
7-Zip1.020 s
Terminal
arca create big.zip bigarca extract big.zip -o out -j 1arca extract big.zip -o out7z x -o"out" big7z.zip

Against NanaZip, on an archive big enough to hurt

A 3.13 GB .zip holding 1,513 files that unpack to 6.28 GB, all Deflate, with 13 entries over 100 MB. Windows 11, 16 cores, NanaZip 7.0.1832, and a DRAM-less SATA SSD (Kingston A400).

Decompression alone

Both tools read every entry, check every CRC and write nothing, on one core each.

ToolWallCPUCores
Arca13.2 s13.2 s1.0
NanaZip25.9 s25.9 s1.0
Terminal
arca test big.zipNanaZipC t big.zip

The whole job

Writing all 6.28 GB, run in the order A B B A so the disk’s decline can’t favour either side.

OrderToolTime
1stArca21.9 s
2ndNanaZip49.0 s
3rdNanaZip68.0 s
4thArca28.0 s
Terminal
arca extract big.zip -o outNanaZipC x -y -o"out" big.zip

The disk sustained 327 MB/s before the four runs and 90 MB/s after them. Arca ran on both the freshest and the most worn disk, and its worst run still beat NanaZip’s best.