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
- Configurar líneas base de rendimiento para un proyecto
- Cuando los usuarios reportan "se siente lento"
- Antes de un lanzamiento — asegúrate de cumplir los objetivos de rendimiento
- Comparar tu stack contra alternativas
Cómo Funciona
Modo 1: Rendimiento de Página
Mide métricas reales del navegador mediante 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 gzipped)
- 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. Seguimiento: tamaño de respuesta, códigos de estado
4. Probar bajo carga: 10 solicitudes concurrentes
5. Comparar contra objetivos de SLA
Modo 3: Rendimiento de Compilación
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 del conjunto de pruebas
4. Tiempo de verificación de TypeScript
5. Tiempo de lint
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
# ... realizar cambios ...
/benchmark compare # compara contra la línea base
Salida:
| Métrica | Antes | Después | Diferencia | Veredicto |
|---------|-------|---------|------------|-----------|
| LCP | 1.2s | 1.4s | +200ms | ADVERTENCIA: WARN |
| Bundle | 180KB | 175KB | -5KB | ✓ MEJOR |
| Compilación | 12s | 14s | +2s | ADVERTENCIA: WARN |
Salida
Almacena líneas base en .ecc/benchmarks/ como JSON. Con seguimiento en 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 previa al lanzamiento