Repository navigation
Benchmarks
Comparison against FreeArc 0.67.1 using its built-in presets (arc.exe -cfg-), via tests/bench_vs_freearc.sh. FreeArc is only a performance oracle; PArc does not read or write .arc. Both use 4 compression threads (PARC_THREADS=4, Arc.exe -mt4); times are the best of two runs.
Test corpora (5–43 MB): C headers from /usr/include, Python sources, .so binaries, a mixed set and 3,000 small files. Total original size: 89.2 MB.
Delta of total archive size (PArc − FreeArc; negative = PArc smaller):
| level | text | binaries | mixed | 3,000 small files |
|---|---|---|---|---|
-m1 |
−14.0% | −10.2% | −9.7% | −17.8% |
-m2 |
−3.9% | −13.5% | −9.1% | −10.2% |
-m3 |
−2.9% | −7.4% | −5.0% | −4.8% |
-m4 |
−4.5% | −2.8% | −2.5% | −5.4% |
-m5 |
−1.3% | −0.9% | −0.9% | −0.5% |
-m6…-m9
|
−1.0% | −0.2% | −0.3% | −0.3% |
-mx (fast decode) |
−1.0% | −0.2% | −0.4% | −0.3% |
-mxx (CM) |
−16.1% | −8.2% | −8.2% | −7.5% |
Aggregate ratio (compressed / original; lower is better): -m6 20.98%, -mx 20.98%, -mxx 19.15%; FreeArc -mx 21.06%.
Wall-clock time on the 44 MB mixed corpus (FreeArc includes Wine startup):
| level | PArc | FreeArc | level | PArc | FreeArc | |
|---|---|---|---|---|---|---|
-m1 |
0.99 s | 1.68 s | -m6 |
6.28 s | 10.28 s | |
-m2 |
1.39 s | 2.44 s | -m7 |
6.06 s | 10.32 s | |
-m3 |
2.93 s | 3.97 s | -m8 |
5.80 s | 10.29 s | |
-m4 |
4.10 s | 6.21 s | -m9 |
5.93 s | 10.60 s | |
-m5 |
4.03 s | 8.60 s |
-mx (fast) |
5.62 s | 10.48 s |
-mxx on the same corpus takes ~30 s.
Decoding (verification t) on the mixed corpus: -m6 2.3 s, -mx 2.3 s, -mxx 31.6 s. Moving from CM to PPMd/LZMA made -mx about 12× faster to decode while still beating FreeArc in size; -mxx keeps the old CM ratio for when decode time does not matter.
Across the four corpora PArc is smaller in 40 of 40 level×corpus pairs up to -mx and faster in 38 of 40. The two speed exceptions are -m1 and -m3 on binaries (0.94 s vs 0.59 s and 2.86 s vs 2.61 s); both still compress 10.2% and 7.4% smaller. In -m1…-m9 the typical speed advantage is 1.4–2.2× with 0.2–13.5% smaller archives. Independent blocks are compressed and verified in parallel.
PArc 0.0.1 vs FreeArc 0.67.1, 4 threads, 211,938,580 bytes:
| level | PArc size | PArc ratio | comp. | dec. | FreeArc size | FreeArc ratio | comp. | dec. |
|---|---|---|---|---|---|---|---|---|
-m1 |
63.974.529 | 30,185 % | 1,56 s | 0,40 s | 72.044.101 | 33,993 % | 2,07 s | 0,86 s |
-m3 |
48.582.743 | 22,921 % | 5,51 s | 1,17 s | 51.883.380 | 24,480 % | 11,95 s | 4,58 s |
-m4 |
46.744.025 | 22,057 % | 7,08 s | 1,39 s | 49.028.632 | 23,133 % | 20,19 s | 4,91 s |
-m5 |
46.579.694 | 21,979 % | 9,37 s | 3,79 s | 47.647.910 | 22,482 % | 33,92 s | 11,22 s |
-m6 |
45.753.042 | 21,587 % | 18,75 s | 12,81 s | 46.081.902 | 21,743 % | 67,64 s | 12,65 s |
-m9 |
45.743.654 | 21,583 % | 18,41 s | 12,39 s | 46.067.031 | 21,736 % | 72,03 s | 14,28 s |
-mx |
45.670.609 | 21,549 % | 18,41 s | 12,89 s | 46.067.031 | 21,736 % | 74,94 s | 12,97 s |
-mxx |
42.915.670 | 20,249 % | 203,94 s | 207,62 s | — | — | — | — |
7-Zip -mx=9 reference: 48.688.242 bytes (22,973 %), 58,90 s / 1,89 s. In Silesia, -m1…-m5 beat FreeArc in size, compression and decompression; -m4 also beats 7-Zip in all three.
ARC_EXE=/path/to/Arc.exe bash tests/bench_vs_freearc.sh some-directoryNumbers come from one machine and two runs per level; use them to compare methodology, not as an absolute guarantee.
PArc 0.0.2 · Repository · Issues · Wiki in English; all documentation is in English.