From charon-fan-agent-playbook
Profiles apps, identifies bottlenecks in database/API/frontend like N+1 queries, and optimizes with indexing, pagination, compression, code splitting. For performance issues or slow apps.
npx claudepluginhub zhaono1/agent-playbookThis skill is limited to using the following tools:
Specialist in analyzing and optimizing application performance, identifying bottlenecks, and implementing efficiency improvements.
Guides performance optimization workflow: profile baselines, identify bottlenecks, apply fixes for frontend (bundle size, rendering, images), backend (queries, caching), and database layers.
Identifies and fixes performance bottlenecks in code, databases, and APIs. Measures before/after execution times, profiles with DevTools/Node, optimizes queries/indexes/caching. Use for slow apps, APIs, or DB queries.
Profiles and optimizes frontend, backend, and database performance for scalable apps. Use for slow response times, scaling bottlenecks via Chrome DevTools, React Profiler, Node/Python profilers, Postgres/Mongo queries.
Share bugs, ideas, or general feedback.
Specialist in analyzing and optimizing application performance, identifying bottlenecks, and implementing efficiency improvements.
Activates when you:
Define metrics
Measure current performance
# Response time
curl -w "@curl-format.txt" -o /dev/null -s https://example.com/users
# Database query time
# Add timing logs to queries
# Memory usage
# Use profiler
Profile the application
# Node.js
node --prof app.js
# Python
python -m cProfile app.py
# Go
go test -cpuprofile=cpu.prof
Common bottleneck locations:
| Layer | Common Issues |
|---|---|
| Database | N+1 queries, missing indexes, large result sets |
| API | Over-fetching, no caching, serial requests |
| Application | Inefficient algorithms, excessive logging |
| Frontend | Large bundles, re-renders, no lazy loading |
| Network | Too many requests, large payloads, no compression |
N+1 Queries:
// Bad: N+1 queries
const users = await User.findAll();
for (const user of users) {
user.posts = await Post.findAll({ where: { userId: user.id } });
}
// Good: Eager loading
const users = await User.findAll({
include: [{ model: Post, as: 'posts' }]
});
Missing Indexes:
-- Add index on frequently queried columns
CREATE INDEX idx_user_email ON users(email);
CREATE INDEX idx_post_user_id ON posts(user_id);
Pagination:
// Always paginate large result sets
const users = await User.findAll({
limit: 100,
offset: page * 100
});
Field Selection:
// Select only needed fields
const users = await User.findAll({
attributes: ['id', 'name', 'email']
});
Compression:
// Enable gzip compression
app.use(compression());
Code Splitting:
// Lazy load routes
const Dashboard = lazy(() => import('./Dashboard'));
Memoization:
// Use useMemo for expensive calculations
const filtered = useMemo(() =>
items.filter(item => item.active),
[items]
);
Image Optimization:
| Metric | Target | Critical Threshold |
|---|---|---|
| API Response (p50) | < 100ms | < 500ms |
| API Response (p95) | < 500ms | < 1s |
| API Response (p99) | < 1s | < 2s |
| Database Query | < 50ms | < 200ms |
| Page Load (FMP) | < 2s | < 3s |
| Time to Interactive | < 3s | < 5s |
| Memory Usage | < 512MB | < 1GB |
// Cache expensive computations
const cache = new Map();
async function getUserStats(userId: string) {
if (cache.has(userId)) {
return cache.get(userId);
}
const stats = await calculateUserStats(userId);
cache.set(userId, stats);
// Invalidate after 5 minutes
setTimeout(() => cache.delete(userId), 5 * 60 * 1000);
return stats;
}
// Bad: Individual requests
for (const id of userIds) {
await fetchUser(id);
}
// Good: Batch request
await fetchUsers(userIds);
// Debounce search input
const debouncedSearch = debounce(search, 300);
// Throttle scroll events
const throttledScroll = throttle(handleScroll, 100);
| Tool | Purpose |
|---|---|
| Lighthouse | Frontend performance |
| New Relic | APM monitoring |
| Datadog | Infrastructure monitoring |
| Prometheus | Metrics collection |
Profile application:
python scripts/profile.py
Generate performance report:
python scripts/perf_report.py
references/optimization.md - Optimization techniquesreferences/monitoring.md - Monitoring setupreferences/checklist.md - Performance checklist