Saltar al contenido

Pruebas y benchmarking

Verifica archivos sin escribir en disco, y mide el rendimiento de forma reproducible.

Actualizado el

arca test

Lee cada entrada y comprueba su CRC (o su HMAC, cuando la entrada está cifrada) sin escribir nada en disco.

Terminal
arca test arca.ziparca test secret.zip -p "a password"
Salida
174 entries verified, no errors (0.006 s)

Las entradas corruptas se informan por la salida de error estándar, y el comando termina con el estado 1 y un recuento de las entradas que fallaron.

Verificar artefactos en CI

YAML
# with arca on the PATH; see Installation- name: Package  run: arca create dist.zip build/ -l best- name: Verify  run: arca test dist.zip

arca bench

Mide los requisitos de rendimiento R1 y R2 del diseño frente a un archivo real y reporta PASS o FAIL.

Terminal
arca bench big.zip

Imprime la cifra R2 del archivo que le des, y el comando hyperfine para R1:

Salida
Performance requirements (design document, section 05)  R2  list without extracting      6000 entries in a 828.8 KB archive      1.1 ms   target < 200 ms   PASS  R1  cold start: open and list a one-entry archive, with hyperfine      hyperfine -N --warmup 20 'arca list tiny.zip'

Las cifras publicadas de R1, R2 y R3, y el script que las reproduce, están en la página de benchmarks.

Benchmarks reproducibles

  • Reporta el mejor de varias ejecuciones, y borra el directorio de salida antes de cada pasada.
  • Los corpus pequeños quedan en la caché de escritura del sistema operativo y hacen que cualquier herramienta parezca más rápida. Usa datos que no quepan.
  • Cuando una ejecución escribe gigabytes, alterna los brazos (A B B A) y mide el disco con una escritura secuencial simple antes y después.
  • Compara el tiempo de CPU con el tiempo real. Si coinciden, el programa es su propio cuello de botella; si el tiempo real es mayor, lo es el disco.