Benchmark — Linha de Base de Desempenho e Detecção de Regressão
Quando Usar
- Antes e depois de um PR para medir impacto no desempenho
- Configurar linhas de base de desempenho para um projeto
- Quando usuários reportam "está lento"
- Antes de um lançamento — garantir que as metas de desempenho sejam cumpridas
- Comparar sua stack com alternativas
Como Funciona
Modo 1: Desempenho de Página
Mede métricas reais do navegador via MCP do navegador:
1. Navegar para cada URL alvo
2. Medir Core Web Vitals:
- LCP (Largest Contentful Paint) — alvo < 2,5s
- CLS (Cumulative Layout Shift) — alvo < 0,1
- INP (Interaction to Next Paint) — alvo < 200ms
- FCP (First Contentful Paint) — alvo < 1,8s
- TTFB (Time to First Byte) — alvo < 800ms
3. Medir tamanhos de recursos:
- Peso total da página (alvo < 1MB)
- Tamanho do bundle JS (alvo < 200KB gzipado)
- Tamanho do CSS
- Peso das imagens
- Peso de scripts de terceiros
4. Contar requisições de rede
5. Verificar recursos que bloqueiam renderização
Modo 2: Desempenho de API
Realiza benchmarks de endpoints:
1. Acessar cada endpoint 100 vezes
2. Medir: latência p50, p95, p99
3. Rastrear: tamanho da resposta, códigos de status
4. Testar sob carga: 10 requisições concorrentes
5. Comparar com metas de SLA
Modo 3: Desempenho de Build
Mede o ciclo de feedback de desenvolvimento:
1. Tempo de build a frio
2. Tempo de recarga a quente (HMR)
3. Duração da suíte de testes
4. Tempo de verificação do TypeScript
5. Tempo de linting
6. Tempo de build Docker
Modo 4: Comparação Antes/Depois
Execute antes e depois de uma alteração para medir o impacto:
/benchmark baseline # salva as métricas atuais
# ... faça as alterações ...
/benchmark compare # compara com a linha de base
Saída:
| Métrica | Antes | Depois | Delta | Veridito |
|---------|-------|--------|-------|----------|
| LCP | 1,2s | 1,4s | +200ms | AVISO: WARN |
| Bundle | 180KB | 175KB | -5KB | ✓ MELHOR |
| Build | 12s | 14s | +2s | AVISO: WARN |
Saída
Armazena linhas de base em .ecc/benchmarks/ como JSON. Rastreado pelo Git para que a equipe compartilhe as linhas de base.
Integração
- CI: execute
/benchmark compareem cada PR - Combine com
/canary-watchpara monitoramento pós-implantação - Combine com
/browser-qapara checklist completa pré-lançamento