Saltar al contenido
Explorar conocimiento

concepto · intermedio · 1 min de lectura

Benchmarking

El benchmarking mide el rendimiento de un sistema o componente bajo condiciones controladas para comparar alternativas o detectar regresiones.

No requiere conocimientos previos.

Alcance en breve

Cubre

  • Benchmarking as a concept

No cubre

  • implementation details

Supone

  • The reader understands relevant fundamentals.

Resumen

Un benchmark es una prueba de rendimiento repetible: ejecutás una operación N veces, medís el tiempo, y obtenés una métrica —ops/segundo, latencia p50, throughput—. A diferencia del profiling —que desglosa dónde se gasta el tiempo—, el benchmarking mide el rendimiento total.

Un buen benchmark es determinista —misma entrada, mismas condiciones, mismo resultado—, aísla la variable que querés medir, y corre suficientes iteraciones para que el ruido estadístico no opaque la señal. Herramientas como hyperfine (CLI) y Benchmark.js (JS) automatizan esto.

Alcance y supuestos

Cubre benchmarking, herramientas y buenas prácticas. Asume familiaridad con desarrollo.

Modelo mental

Probar dos autos en la misma pista, el mismo día, con el mismo conductor. Si uno hace 0-100 en 5s y otro en 7s, la diferencia es real. Si uno lo probás en lluvia y otro en seco, los resultados no son comparables.

Uso práctico

  • ✅ Comparar librerías, detectar regresiones de rendimiento, validar optimizaciones.
  • ❌ Microbenchmarks que miden operaciones irrelevantes en el contexto real.

Ejemplo trabajado: benchmark con hyperfine

hyperfine 'node script-a.js' 'node script-b.js' --warmup 3 --runs 20

Evidencia

  • hyperfine, criterion.rs (Rust) y wrk (HTTP) son herramientas de benchmarking populares.

Fuentes citadas