Pular para o conteúdo
Skillpedia
Código em geral107 mil · #357

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

https://github.com/addyosmani/agent-skills/blob/main/skills/performance-optimization/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/addyosmani/agent-skills/blob/main/skills/performance-optimization/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-optimization

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/addyosmani/agent-skills/main/skills/performance-optimization/SKILL.md -o SKILL.md
Conteú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

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas