Saltar al contenido

Benchmarks

Cada medición, la máquina detrás y los casos donde Arca pierde.

Actualizado el

Estos números vienen de máquinas concretas y no deben leerse como una ventaja general. Cada uno trae su método, incluidos los casos donde Arca pierde.

Requisitos

Ryzen 9 5900X, Linux. Todo lo de esta sección y la siguiente se reproduce con un script, que descarga el corpus Silesia, lo fija por hash e imprime la máquina y las versiones de las herramientas con las que se ejecutó:

Terminal
cargo build --releasenix-shell -p hyperfine zip unzip _7zz --run 'bash bench.sh'
RequisitoObjetivoMedidoOtros
R1 · arranque en frío, listar un zip de una entrada< 15 ms0.8 msunzip 2.0 · 7z 2.5
R2 · listar 6000 entradas< 200 ms3.1 msunzip 18.6 · 7z 71.8
R3 · escalado a 2 hilos≥ 1.6×1.79×90% de eficiencia
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'

Compresión

El corpus Silesia, 211.9 MB divididos en 120 archivos iguales, fijado a dos núcleos físicos.

HerramientaTiempoTamaño
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'

Con Zstandard, Arca fue 13.2× más rápido que zip y 18.1× más rápido que 7-Zip; 7-Zip siguió escribiendo el archivo más pequeño, un 1.6% por debajo de Arca. Con Deflate, Arca fue 5.7× más rápido que zip y su archivo quedó un 1.1% más pequeño.

Deflate contra deflate en Windows 11

16 hilos, mejor de 3.

CorpusArca7-Zip -mx5Tamaño ArcaTamaño 7-Zip
5358 archivos fuente, 54.8 MB0.710 s0.627 s13,729,30813,747,705
16 archivos, 287 MB0.402 s2.285 s56,757,28454,753,868
Terminal
arca create c1.zip src7z a -tzip -mx5 c2.zip src

Con archivos grandes, Arca comprimió 5.7× más rápido a costa de un 3.7% más de tamaño; con muchos archivos pequeños, 7-Zip fue algo mejor con el mismo tamaño. El ganador depende del corpus.

Extracción en paralelo

Windows 11, 16 hilos, 287 MB en 16 archivos de texto, mejor de 3, borrando la salida antes de cada pasada.

HerramientaTiempo
Arca, 16 hilos0.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

Contra NanaZip, en un archivo lo bastante grande como para doler

Un .zip de 3.13 GB con 1513 archivos que al descomprimirse ocupan 6.28 GB, todo en Deflate, con 13 entradas de más de 100 MB. Windows 11, 16 núcleos, NanaZip 7.0.1832, y un SSD SATA sin DRAM (Kingston A400).

Solo descompresión

Ambas herramientas leen cada entrada, comprueban cada CRC y no escriben nada, en un núcleo cada una.

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

El trabajo completo

Escribiendo los 6.28 GB enteros, ejecutado en el orden A B B A para que el declive del disco no favorezca a ningún lado.

OrdenHerramientaTiempo
1.ºArca21.9 s
2.ºNanaZip49.0 s
3.ºNanaZip68.0 s
4.ºArca28.0 s
Terminal
arca extract big.zip -o outNanaZipC x -y -o"out" big.zip

El disco sostenía 327 MB/s antes de las cuatro ejecuciones y 90 MB/s después. Arca corrió tanto en el disco más fresco como en el más desgastado, y su peor ejecución aún superó a la mejor de NanaZip.