performance-optimization
Melhora a velocidade e a eficiência do seu aplicativo. Faz com que tudo funcione mais rápido, desde a interface até o banco de dados.
O que ela faz
Esta ferramenta ajuda a identificar e corrigir lentidão em aplicativos. Ela mede o desempenho, encontra o gargalo e sugere como consertá-lo, garantindo que o aplicativo funcione mais rápido para os usuários.
Quando usar
- ✓Quando o aplicativo está lento para carregar.
- ✓Quando os usuários reclamam de lentidão.
- ✓Quando métricas de desempenho (como Core Web Vitals) estão baixas.
Exemplo do que pedir para a IA
“Meu site está demorando muito para carregar, pode me ajudar a otimizar a performance?”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A ferramenta primeiro mede o desempenho atual do aplicativo para entender onde está o problema. Depois, ela foca em corrigir esse ponto específico, sem mudar o resto, e verifica se a melhoria foi real.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add addyosmani/agent-skills --skill performance-optimizationOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/addyosmani/agent-skills/main/skills/performance-optimization/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Otimização de Performance
Visão Geral
Meça antes de otimizar. Trabalho de performance sem medição é adivinhação — e adivinhação leva à otimização prematura que adiciona complexidade sem melhorar o que importa. Faça o profiling primeiro, identifique o gargalo real, corrija-o, meça novamente. Otimize apenas o que as medições provam que importa.
Quando Usar
- Requisitos de performance existem na especificação (orçamentos de tempo de carregamento, SLAs de tempo de resposta)
- Usuários ou monitoramento relatam comportamento lento
- Pontuações dos Core Web Vitals estão abaixo dos limites
- Você suspeita que uma mudança introduziu uma regressão
- Construindo funcionalidades que lidam com grandes conjuntos de dados ou alto tráfego
Quando NÃO usar: Não otimize antes de ter evidências de um problema. Otimização prematura adiciona complexidade que custa mais do que a performance que ela ganha.
Metas dos Core Web Vitals
| Métrica | Bom | Precisa de Melhoria | Ruim |
|---|---|---|---|
| LCP (Largest Contentful Paint) | ≤ 2.5s | ≤ 4.0s | > 4.0s |
| INP (Interaction to Next Paint) | ≤ 200ms | ≤ 500ms | > 500ms |
| CLS (Cumulative Layout Shift) | ≤ 0.1 | ≤ 0.25 | > 0.25 |
O Fluxo de Trabalho de Otimização
1. MEASURE → Establish baseline with real data
2. IDENTIFY → Find the actual bottleneck (not assumed)
3. FIX → Address the specific bottleneck
4. VERIFY → Measure again; keep or revert
5. GUARD → Add monitoring or tests to prevent regression
Passo 1: Medir
Duas abordagens complementares — use ambas:
- Sintética (Lighthouse, aba Performance do DevTools): Condições controladas, reproduzível. Melhor para detecção de regressão em CI e isolamento de problemas específicos.
- RUM (biblioteca web-vitals, CrUX): Dados de usuários reais em condições reais. Necessário para validar que uma correção realmente melhorou a experiência do usuário.
Frontend:
// Synthetic: Lighthouse in Chrome DevTools (or CI)
// Chrome DevTools → Performance tab → Record
// Chrome DevTools MCP → Performance trace
// RUM: Web Vitals library in code
import { onLCP, onINP, onCLS } from 'web-vitals';
onLCP(console.log);
onINP(console.log);
onCLS(console.log);
Backend:
// Response time logging
// Application Performance Monitoring (APM)
// Database query logging with timing
// Simple timing
console.time('db-query');
const result = await db.query(...);
console.timeEnd('db-query');
Onde Começar a Medir
Use o sintoma para decidir o que medir primeiro:
What is slow?
├── First page load
│ ├── Large bundle? --> Measure bundle size, check code splitting
│ ├── Slow server response? --> Measure TTFB in DevTools Network waterfall
│ │ ├── DNS long? --> Add dns-prefetch / preconnect for known origins
│ │ ├── TCP/TLS long? --> Enable HTTP/2, check edge deployment, keep-alive
│ │ └── Waiting (server) long? --> Profile backend, check queries and caching
│ └── Render-blocking resources? --> Check network waterfall for CSS/JS blocking
├── Interaction feels sluggish
│ ├── UI freezes on click? --> Profile main thread, look for long tasks (>50ms)
│ ├── Form input lag? --> Check re-renders, controlled component overhead
│ └── Animation jank? --> Check layout thrashing, forced reflows
├── Page after navigation
│ ├── Data loading? --> Measure API response times, check for waterfalls
│ └── Client rendering? --> Profile component render time, check for N+1 fetches
└── Backend / API
├── Single endpoint slow? --> Profile database queries, check indexes
├── All endpoints slow? --> Check connection pool, memory, CPU
└── Intermittent slowness? --> Check for lock contention, GC pauses, external deps
Passo 2: Identificar o Gargalo
Gargalos comuns por categoria:
Frontend:
| Sintoma | Causa Provável | Investigação |
|---|---|---|
| LCP Lento | Imagens grandes, recursos que bloqueiam a renderização, servidor lento | Verificar o waterfall da rede, tamanhos das imagens |
| CLS Alto | Imagens sem dimensões, conteúdo carregado tarde, mudanças de fonte | Verificar a atribuição de mudança de layout |
| INP Ruim | JavaScript pesado na thread principal, grandes atualizações do DOM | Verificar tarefas longas no trace de Performance |
| Carregamento inicial lento | Bundle grande, muitas requisições de rede | Verificar o tamanho do bundle, divisão de código |
Backend:
| Sintoma | Causa Provável | Investigação |
|---|---|---|
| Respostas lentas da API | Consultas N+1, índices ausentes, consultas não otimizadas | Verificar o log de consultas do banco de dados |
| Crescimento de memória | Referências vazadas, caches ilimitados, payloads grandes | Análise de snapshot de heap |
…
Perguntas frequentes
O que são Core Web Vitals?
São métricas que medem a experiência do usuário em relação à velocidade de carregamento, interatividade e estabilidade visual de uma página.
O que é um gargalo de desempenho?
É a parte do aplicativo que está causando a lentidão geral, como uma consulta lenta no banco de dados ou um código que demora para processar.
Devo otimizar antes de medir?
Não. É importante medir primeiro para saber exatamente onde está o problema. Otimizar sem medir pode piorar as coisas ou adicionar complexidade desnecessária.
Detalhes
Descrição original do autor
Optimizes application performance across frontend, backend, queries, and databases. Use when performance requirements exist, when you suspect performance regressions, when Core Web Vitals or load times need improvement, when N+1 query patterns need fixing, or when profiling reveals bottlenecks.
repo: addyosmani/agent-skills
Popularidade
- Estrelas no GitHub
- 107 mil
- Posição no ranking
- #357
- Licença
- MIT
- Atualizada em
- 13/10/2026
Comentários
- …
Mais skills deste repositório
api-and-interface-design
Ajuda a criar APIs e interfaces bem definidas. É útil ao projetar como diferentes partes de um software vão se comunicar.
addyosmani/agent-skills
browser-testing-with-devtools
Ajuda seu agente a testar código diretamente em navegadores reais. É útil para verificar como algo funciona no ambiente onde será usado, encontrando erros e problemas de performance.
addyosmani/agent-skills
ci-cd-and-automation
Ensina seu agente de IA a automatizar tarefas repetitivas e colocar projetos no ar e cuidar da infraestrutura.
addyosmani/agent-skills
code-review-and-quality
Realiza revisões de código detalhadas em várias frentes. É útil antes de juntar novas mudanças para garantir a qualidade e evitar problemas futuros.
addyosmani/agent-skills
Skills parecidas
benchmark-optimization-loop
Faz seu agente melhorar a velocidade de algo de forma medida. Ele testa várias versões e escolhe a mais rápida que ainda funciona corretamente.
affaan-m/ECC
change-impact
Ajuda seu agente a analisar o impacto de mudanças no código antes de fazê-las. Ele compara o planejado com o real depois, cobrindo caminhos, dados, testes e documentação. É útil para mudanças arriscadas ou que afetam várias partes do sistema.
affaan-m/ECC
click-path-audit
Faz seu agente rastrear todos os botões e interações do usuário para achar bugs. Ele encontra problemas onde funções parecem funcionar sozinhas, mas falham juntas. Útil quando bugs persistem mesmo após depuração.
affaan-m/ECC