Cómo medimos

Toda cifra que publicamos o entregamos lleva su contexto: qué se midió, dónde, cuándo, con qué carga y con qué herramienta. Esta página describe el procedimiento que seguimos y las plantillas que usamos.

Tres clases de cifras

  • Benchmark. Medición en un entorno controlado con carga sintética. Se declaran el hardware, el sistema operativo, el perfil de energía, las versiones y el generador de carga. Sirve para comparar implementaciones o configuraciones bajo las mismas condiciones; no predice el rendimiento con otro hardware ni con tráfico real.
  • Producción. Medición sobre tráfico real, con la herramienta que la registró, el periodo y el sistema. Sirve para fijar la línea base y verificar el efecto de un cambio.
  • Estimación. Cálculo a partir de supuestos explícitos, por ejemplo el tamaño de los mensajes y la tasa de aciertos esperada. Se presenta con sus supuestos y nunca como resultado medido.

Qué instrumentamos y con qué

MagnitudCómo la registramosHerramientas
Latencia por peticiónHistograma con percentiles p50, p90, p99, p99,9 y máximo; nunca solo el promedioHistogramas log-lineales del harness de benchmarks
RendimientoPeticiones completadas por segundo durante el periodo medido, excluido el calentamientoContadores del harness; en producción, las métricas del propio servicio (Prometheus u otra)
Trabajo evitado por una cachéLlamadas reales al backend frente a peticiones recibidas; aciertos y fallos según los contadores de la bibliotecaContadores del harness y de la biblioteca medida
CPU y memoriaPerfil de CPU y memoria residente (RSS) al final de cada corrida/proc, perf, pprof en Go; sanitizers (TSAN, ASAN) y valgrind durante los diagnósticos de código
ErroresRespuestas fallidas o saturaciones durante el periodo medidoContadores del harness; en producción, los registros del servicio
VariabilidadTres repeticiones como mínimo; se publica la mediana y el rango mínimo–máximoscripts/summarize.py del harness

Antes y después de una intervención

  1. Línea base. Antes de cambiar nada, medimos el sistema tal como está, con la misma carga o el mismo periodo de tráfico, y registramos fecha, herramienta y entorno.
  2. Un cambio a la vez. Aplicamos una intervención y la medimos. Si hay varias, cada una se mide por separado.
  3. Misma medición. Repetimos el procedimiento de la línea base: misma carga, mismo entorno, mismas herramientas.
  4. Repeticiones y rango. Tres corridas como mínimo; informamos la mediana y el rango. Si el rango de la línea base y el del resultado se solapan, no afirmamos mejora.
  5. Condiciones declaradas. Hardware, sistema, perfil de energía, versiones y configuración quedan en el informe. No comparamos cifras tomadas en hardware distinto.
  6. Entrega. El informe sigue la plantilla de abajo e incluye los datos crudos.

El primer principio es no engañarte a ti mismo; y tú eres la persona más fácil de engañar.

Richard P. Feynman, Cargo Cult Science (1974), discurso de graduación de Caltech, publicado en Engineering and Science 37(7). Fuente. Versión editorial del original inglés.
Ponemos a prueba nuestras hipótesis y publicamos las condiciones y los límites de cada medición. Si los datos contradicen una idea, la revisamos.

Benchmarks publicados

El protocolo, los scripts, los datos crudos y el entorno de cada medición están en el repositorio simylresearch/simyl-benchmarks. La ficha de resultados vigente está en Benchmarks. Cualquiera puede repetir la medición con los comandos del README y comparar con el entorno declarado.

El mismo rigor sobre este sitio

Antes de cada publicación, este sitio pasa por un protocolo de laboratorio: construcción que falla ante cualquier aviso; dos lints propios que comprueban enlaces, anclas, metadatos, datos estructurados, formularios, imágenes sociales, frases retiradas y paridad español–inglés; un recorrido automatizado en navegador que prueba teclado, tema claro y oscuro, anclas, consentimiento de analítica, validación del formulario y funcionamiento sin JavaScript; y una comprobación automática del sitio publicado después de cada fusión y una vez al mes. Cada verificación se registra con fecha.

Plantillas

Las usamos en cada diagnóstico y en cada proyecto por hitos; puedes usarlas tal cual en tu equipo.

¿Quieres que midamos tu sistema con este método? Pide la llamada exploratoria