Benchmark — Línea Base de Rendimiento y Detección de Regresiones
Cuándo Usarlo
- Antes y después de un PR para medir el impacto en el rendimiento
- Establecer líneas base de rendimiento para un proyecto
- Cuando los usuarios reportan "se siente lento"
- Antes de un lanzamiento — asegúrate de cumplir con los objetivos de rendimiento
- Comparar tu stack contra alternativas
Cómo Funciona
Modo 1: Rendimiento de Página
Mide métricas reales del navegador a través de browser MCP:
1. Navegar a cada URL objetivo
2. Medir Core Web Vitals:
- LCP (Largest Contentful Paint) — objetivo < 2.5s
- CLS (Cumulative Layout Shift) — objetivo < 0.1
- INP (Interaction to Next Paint) — objetivo < 200ms
- FCP (First Contentful Paint) — objetivo < 1.8s
- TTFB (Time to First Byte) — objetivo < 800ms
3. Medir tamaños de recursos:
- Peso total de la página (objetivo < 1MB)
- Tamaño del bundle JS (objetivo < 200KB comprimido con gzip)
- Tamaño de CSS
- Peso de imágenes
- Peso de scripts de terceros
4. Contar solicitudes de red
5. Verificar recursos que bloquean el renderizado
Modo 2: Rendimiento de API
Evalúa el rendimiento de endpoints:
1. Golpear cada endpoint 100 veces
2. Medir: latencia p50, p95, p99
3. Rastrear: tamaño de respuesta, códigos de estado
4. Probar bajo carga: 10 solicitudes concurrentes
5. Comparar contra objetivos SLA
Modo 3: Rendimiento de Build
Mide el ciclo de retroalimentación del desarrollo:
1. Tiempo de compilación en frío
2. Tiempo de recarga en caliente (HMR)
3. Duración de la suite de pruebas
4. Tiempo de verificación de TypeScript
5. Tiempo de linting
6. Tiempo de compilación de Docker
Modo 4: Comparación Antes/Después
Ejecuta antes y después de un cambio para medir el impacto:
/benchmark baseline # guarda las métricas actuales
# ... hacer cambios ...
/benchmark compare # compara contra la línea base
Salida:
| Métrica | Antes | Después | Delta | Verdicto |
|----------|--------|---------|---------|-----------------------|
| LCP | 1.2s | 1.4s | +200ms | ADVERTENCIA: WARN |
| Bundle | 180KB | 175KB | -5KB | ✓ MEJOR |
| Build | 12s | 14s | +2s | ADVERTENCIA: WARN |
Salida
Guarda las líneas base en .ecc/benchmarks/ como JSON. Con seguimiento de Git para que el equipo comparta las líneas base.
Integración
- CI: ejecuta
/benchmark compareen cada PR - Combínalo con
/canary-watchpara monitoreo post-despliegue - Combínalo con
/browser-qapara una lista de verificación completa antes del lanzamiento