Benchmark — Linha de Base de Desempenho e Detecção de Regressão
Quando Usar
- Antes e depois de um PR para medir o impacto no desempenho
- Definindo linhas de base de desempenho para um projeto
- Quando usuários relatarem "está lento"
- Antes de um lançamento — garantir que você atenda às metas de desempenho
- Comparando sua stack com alternativas
Como Funciona
Modo 1: Desempenho de Página
Mede métricas reais do navegador via navegador MCP:
1. Navegue para cada URL alvo
2. Meça os 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. Meça os tamanhos dos recursos:
- Peso total da página (alvo < 1MB)
- Tamanho do bundle JS (alvo < 200KB gzip)
- Tamanho do CSS
- Peso das imagens
- Peso dos scripts de terceiros
4. Conte as requisições de rede
5. Verifique recursos que bloqueiam a renderização
Modo 2: Desempenho de API
Faz benchmark de endpoints de API:
1. Acesse cada endpoint 100 vezes
2. Meça: latência p50, p95, p99
3. Acompanhe: tamanho da resposta, códigos de status
4. Teste sob carga: 10 requisições simultâneas
5. Compare contra metas de SLA
Modo 3: Desempenho de Build
Mede o ciclo de feedback de desenvolvimento:
1. Tempo de build a frio
2. Tempo de hot reload (HMR)
3. Duração do conjunto de testes
4. Tempo de verificação TypeScript
5. Tempo de lint
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 alterações ...
/benchmark compare # compara com a linha de base
Saída:
| Métrica | Antes | Depois | Variação | Veredito |
|---------|-------|--------|----------|----------|
| 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 completo antes do lançamento