Pular para o conteúdo
Skillpedia
Deploy e nuvem (DevOps)48 mil · #3816

performance-optimizer

Corrige problemas que deixam o código, banco de dados ou APIs lentos. Ele mede o desempenho antes e depois para mostrar a melhoria.

O que ela faz

Essa ferramenta ajuda a encontrar e consertar partes lentas do seu código, banco de dados ou APIs. Ela mede o desempenho antes e depois para garantir que as melhorias foram feitas.

Quando usar

  • ✓Quando um aplicativo está lento ou travando.
  • ✓Quando os usuários reclamam da velocidade.
  • ✓Quando as páginas demoram muito para carregar.

Exemplo do que pedir para a IA

“Meu site está muito lento, você pode me ajudar a otimizar o carregamento?”

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/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/performance-optimizer/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/performance-optimizer/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Primeiro, a ferramenta mede o quão rápido ou lento algo está. Depois, ela procura os gargalos (as partes que causam lentidão) e sugere ou aplica correções. Por fim, ela mede novamente para confirmar a melhoria.

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 sickn33/agentic-awesome-skills --skill performance-optimizer

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/performance-optimizer/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.

Otimizador de Performance

Encontre e corrija gargalos de performance. Meça, otimize, verifique. Faça ficar rápido.

Quando Usar Esta Habilidade

  • O aplicativo está lento ou travando
  • O usuário reclama da performance
  • Tempos de carregamento de página estão altos
  • Respostas da API estão lentas
  • Consultas ao banco de dados demoram muito
  • O usuário menciona "lento", "travando", "performance" ou "otimizar"

O Processo de Otimização

1. Meça Primeiro

Nunca otimize sem medir:

// Measure execution time
console.time('operation');
await slowOperation();
console.timeEnd('operation'); // operation: 2341ms

O que medir:

  • Tempo de carregamento da página
  • Tempo de resposta da API
  • Tempo de consulta ao banco de dados
  • Tempo de execução de funções
  • Uso de memória
  • Requisições de rede

2. Encontre o Gargalo

Use ferramentas de profiling para encontrar as partes lentas:

Navegador:

DevTools → Performance tab → Record → Stop
Look for long tasks (red bars)

Node.js:

node --prof app.js
node --prof-process isolate-*.log > profile.txt

Banco de Dados:

EXPLAIN ANALYZE SELECT * FROM users WHERE email = 'test@example.com';

3. Otimize

Corrija a coisa mais lenta primeiro (maior impacto).

Otimizações Comuns

Consultas ao Banco de Dados

Problema: Consultas N+1

// Bad: N+1 queries
const users = await db.users.find();
for (const user of users) {
  user.posts = await db.posts.find({ userId: user.id }); // N queries
}

// Good: Single query with JOIN
const users = await db.users.find()
  .populate('posts'); // 1 query

Problema: Índice Faltando

-- Check slow query
EXPLAIN SELECT * FROM users WHERE email = 'test@example.com';
-- Shows: Seq Scan (bad)

-- Add index
CREATE INDEX idx_users_email ON users(email);

-- Check again
EXPLAIN SELECT * FROM users WHERE email = 'test@example.com';
-- Shows: Index Scan (good)

**Problema: SELECT ***

// Bad: Fetches all columns
const users = await db.query('SELECT * FROM users');

// Good: Only needed columns
const users = await db.query('SELECT id, name, email FROM users');

Problema: Sem Paginação

// Bad: Returns all records
const users = await db.users.find();

// Good: Paginated
const users = await db.users.find()
  .limit(20)
  .skip((page - 1) * 20);

Performance da API

Problema: Sem Cache

// Bad: Hits database every time
app.get('/api/stats', async (req, res) => {
  const stats = await db.stats.calculate(); // Slow
  res.json(stats);
});

// Good: Cache for 5 minutes
const cache = new Map();
app.get('/api/stats', async (req, res) => {
  const cached = cache.get('stats');
  if (cached && Date.now() - cached.time < 300000) {
    return res.json(cached.data);
  }
  
  const stats = await db.stats.calculate();
  cache.set('stats', { data: stats, time: Date.now() });
  res.json(stats);
});

Problema: Operações Sequenciais

// Bad: Sequential (slow)
const user = await getUser(id);
const posts = await getPosts(id);
const comments = await getComments(id);
// Total: 300ms + 200ms + 150ms = 650ms

// Good: Parallel (fast)
const [user, posts, comments] = await Promise.all([
  getUser(id),
  getPosts(id),
  getComments(id)
]);
// Total: max(300ms, 200ms, 150ms) = 300ms

Problema: Cargas Úteis Grandes

// Bad: Returns everything
res.json(users); // 5MB response

// Good: Only needed fields
res.json(users.map(u => ({
  id: u.id,
  name: u.name,
  email: u.email
}))); // 500KB response

Performance do Frontend

Problema: Re-renderizações Desnecessárias

// Bad: Re-renders on every parent update
function UserList({ users }) {
  return users.map(user => <UserCard user={user} />);
}

// Good: Memoized
const UserCard = React.memo(({ user }) => {
  return <div>{user.name}</div>;
});

Problema: Bundle Grande

// Bad: Imports entire library
import _ from 'lodash'; // 70KB

// Good: Import only what you need
import debounce from 'lodash/debounce'; // 2KB

Problema: Sem Divisão de Código (Code Splitting)

// Bad: Everything in one bundle
import HeavyComponent from './HeavyComponent';

// Good: Lazy load
const HeavyComponent = React.lazy(() => import('./HeavyComponent'));

Problema: Imagens Não Otimizadas

<!-- Bad: Large image -->
<img src="photo.jpg" /> <!-- 5MB -->

<!-- Good: Optimized and responsive -->
<img 
  src="photo-small.webp" 
  srcset="photo-small.webp 400w, photo-large.webp 800w"
  loading="lazy"
  width="400"
  height="300"
/> <!-- 50KB -->

Otimização de Algoritmos

…

Perguntas frequentes

O que é um 'gargalo' de desempenho?

É a parte de um sistema (código, banco de dados, etc.) que está causando lentidão e limitando a velocidade geral.

Preciso saber programar para usar isso?

Não necessariamente. Você pode pedir para a IA identificar problemas e sugerir soluções, ou até mesmo tentar aplicar correções em código que você entenda.

Como a ferramenta sabe se a otimização funcionou?

Ela compara as medições de velocidade antes e depois da otimização. Se a velocidade melhorou, a otimização foi bem-sucedida.

Detalhes

Descrição original do autor

Identifies and fixes performance bottlenecks in code, databases, and APIs. Measures before and after to prove improvements.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#3816
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas