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.ziparca 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.zipImprime 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.