Agent skill
performance-optimizing
Identifies and fixes performance bottlenecks. Use when optimizing code performance, fixing slow operations, or when asked to improve speed.
Stars
163
Forks
31
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/development/performance-optimizing
SKILL.md
Performance Optimizing
Optimization Workflow
- Measure first - Don't optimize without data
- Find bottlenecks - Profile to identify hot paths
- Fix the biggest issue - Pareto principle (80/20)
- Measure again - Verify improvement
- Document - Record what changed and why
Common Bottlenecks
Database
| Problem | Solution |
|---|---|
| N+1 queries | Eager loading, batching |
| Missing indexes | Add indexes on WHERE/JOIN columns |
| Full table scans | Optimize queries, add indexes |
| Over-fetching | Select only needed columns |
typescript
// Bad - N+1 queries
for (const user of users) {
const posts = await db.posts.findByUserId(user.id);
}
// Good - single query with join
const usersWithPosts = await db.users.findAll({
include: ['posts'],
});
Memory
| Problem | Solution |
|---|---|
| Memory leaks | Clear references, use WeakMap |
| Large objects | Stream processing, pagination |
| Duplicated data | Normalize, use references |
CPU
| Problem | Solution |
|---|---|
| Blocking operations | Use async/workers |
| Redundant computation | Memoization, caching |
| Inefficient algorithms | Better data structures |
typescript
// Bad - O(n) lookup on every iteration
for (const item of items) {
if (list.includes(item.id)) { ... }
}
// Good - O(1) lookup with Set
const idSet = new Set(list);
for (const item of items) {
if (idSet.has(item.id)) { ... }
}
Network
| Problem | Solution |
|---|---|
| Too many requests | Batching, HTTP/2 |
| Large payloads | Compression, pagination |
| No caching | HTTP caching, CDN |
Quick Wins
- Add indexes on frequently queried columns
- Enable compression (gzip/brotli)
- Implement caching at appropriate layers
- Use pagination for large datasets
- Lazy load non-critical resources
Anti-Patterns
- Premature optimization without measurement
- Micro-optimizations that hurt readability
- Caching everything (cache invalidation is hard)
- Optimizing cold paths
Didn't find tool you were looking for?