askill
benchmark

benchmarkSafety 95Repository

Crear y ejecutar benchmarks para medir impacto de cambios. Activar cuando el usuario quiera medir rendimiento, comparar antes y despues, evaluar velocidad, throughput o ejecutar un benchmark de codigo.

24 stars
1.2k downloads
Updated 3/14/2026

Package Files

Loading files...
SKILL.md

Benchmarks de rendimiento

Resumen

Este skill establece un proceso para crear y ejecutar benchmarks fiables que midan el impacto real de los cambios en el rendimiento de una aplicación. Un benchmark mal diseñado es peor que no tener benchmark, porque puede llevar a conclusiones erróneas y optimizaciones contraproducentes.

El resultado es un informe cuantitativo con métricas estadísticas (media, percentiles) que permite tomar decisiones informadas sobre si un cambio mejora, empeora o no afecta al rendimiento.

Proceso

  1. Consultar el stack del proyecto. Consultar el stack detectado en la configuración de Alfred para seleccionar la herramienta de benchmarking adecuada al runtime y al tipo de aplicación.

  2. Definir qué se mide y por qué. Antes de escribir código de benchmark, establecer con claridad:

    • Qué operación se está midiendo (renderizado de un componente, respuesta de un endpoint, procesado de un fichero).
    • Qué métrica importa: latencia, throughput, uso de memoria, tamaño de bundle.
    • Cuál es el criterio de éxito (mejora del 20%, no empeorar más de un 5%, mantenerse por debajo de 100ms en p95).
  3. Preparar condiciones controladas. Un benchmark solo es fiable si las condiciones son reproducibles:

    • Ejecutar en un entorno consistente (misma máquina, misma carga, mismos datos).
    • Cerrar procesos que puedan interferir (otras aplicaciones, servicios en background).
    • Usar datos de prueba representativos del volumen real.
    • Fijar las versiones de todas las dependencias para evitar variabilidad por actualizaciones.
  4. Implementar el benchmark con la herramienta adecuada. Seleccionar según el runtime:

    • Node.js: vitest bench, tinybench o benchmark.js para microbenchmarks. autocannon o k6 para benchmarks HTTP.
    • Python: pytest-benchmark para microbenchmarks. locust o k6 para carga HTTP.
    • Frontend: lighthouse ci para métricas web. Web Vitals API para métricas reales en navegador. react-render-tracker o React Profiler API para componentes.
    • General: hyperfine para benchmarks de línea de comandos.
  5. Ejecutar con warmup e iteraciones suficientes. Los JIT compilers y las cachés hacen que las primeras ejecuciones sean atípicas:

    • Incluir fase de warmup (al menos 5-10 iteraciones) que no se contabilice.
    • Ejecutar un mínimo de 100 iteraciones para operaciones rápidas, 30 para operaciones lentas.
    • Si la herramienta lo permite, ejecutar hasta que la desviación estándar sea estable.
  6. Recopilar estadísticas, no solo la media. La media oculta la distribución real del rendimiento:

    • Media: referencia general, pero sensible a outliers.
    • Mediana (p50): el caso típico. Más robusta que la media.
    • p95: el 95% de las ejecuciones son más rápidas que este valor. Representa la experiencia de la mayoría.
    • p99: detecta colas largas. Importante para sistemas con muchos usuarios.
    • Min/Max: útiles para detectar anomalías, pero no para comparar.
    • Desviación estándar: mide la variabilidad. Si es alta, los resultados no son fiables.
  7. Comparar antes y después con formato estandarizado. Presentar los resultados en tabla:

    MetricaAntesDespuésDiferenciaCambio
    Media120ms85ms-35ms-29.2%
    p50115ms82ms-33ms-28.7%
    p95180ms105ms-75ms-41.7%
    p99250ms130ms-120ms-48.0%

    Incluir el número de iteraciones y la desviación estándar para evaluar la confianza en los resultados.

  8. Interpretar y documentar. No basta con números; contextualizar los resultados:

    • La mejora es estadísticamente significativa o está dentro del margen de error?
    • La mejora justifica la complejidad adicional del cambio?
    • Hay regresiones en algún percentil aunque la media mejore?
    • Guardar los resultados en el repositorio para seguimiento histórico.

Que NO hacer

  • No comparar benchmarks ejecutados en máquinas o condiciones diferentes.
  • No usar una sola iteración como resultado. Un solo dato no es un benchmark, es una anécdota.
  • No ignorar los percentiles altos (p95, p99). La media puede mejorar mientras la cola empeora.
  • No optimizar para el benchmark en lugar de para el caso de uso real. El benchmark debe representar el uso real, no un escenario artificial.
  • No omitir la fase de warmup. Las primeras ejecuciones son sistemáticamente más lentas por compilación JIT y llenado de cachés.

Install

Download ZIP
Requires askill CLI v1.0+

AI Quality Score

88/100Analyzed 3/15/2026

Comprehensive benchmarking skill in Spanish covering full methodology from defining metrics to statistical analysis. Provides 8 detailed steps, runtime-specific tool recommendations (Node.js/Python/Frontend/CLI), statistical guidance (mean/percentiles/deviation), and standardized comparison tables. Includes anti-patterns section. Highly actionable with clear success criteria, warmup/iteration guidance, and reusable methodology applicable across projects. Only minor gaps are lack of code snippets and some localization (Spanish) may limit audience.

95
85
90
88
90

Metadata

Licenseunknown
Version-
Updated3/14/2026
Publisher686f6c61

Tags

apici-cdtesting