perf
Performance Engineering
Profile, analyze, and optimize application performance.
When to Use
- Application is slow or unresponsive
- User reports performance issues
- Before scaling infrastructure
- Optimizing critical paths
- Setting up monitoring
Optimization Process
- Measure - Profile before optimizing
- Identify - Find the biggest bottlenecks
- Optimize - Fix highest-impact issues first
- Verify - Confirm improvements with metrics
Profiling Commands
# Node.js profiling
node --prof app.js
node --prof-process isolate-*.log > profile.txt
# Python profiling
python -m cProfile -o output.prof script.py
python -m pstats output.prof
# Go profiling
go tool pprof http://localhost:6060/debug/pprof/profile
Common Bottlenecks
Database
- Missing indexes (add indexes on WHERE/JOIN columns)
- N+1 queries (use eager loading)
- Large result sets (add pagination)
Memory
- Memory leaks (check event listeners, closures)
- Large objects (stream instead of buffer)
- Cache without TTL (add expiration)
CPU
- Synchronous operations (make async)
- Complex algorithms (optimize or cache)
- Unnecessary computation (memoize)
Network
- Too many requests (batch/combine)
- Large payloads (compress, paginate)
- No caching (add CDN, browser cache)
Performance Budgets
| Metric | Target |
|---|---|
| Load Time (3G) | <3s |
| Load Time (4G) | <1s |
| API Response | <200ms |
| Bundle Size | <500KB |
| LCP | <2.5s |
| FID | <100ms |
| CLS | <0.1 |
Output Format
## Performance Report
**Before:** [baseline metrics]
**After:** [improved metrics]
**Improvement:** [percentage]
### Bottlenecks Identified
1. [Issue] - Impact: High/Medium/Low
### Optimizations Applied
1. [Change] → [Result]
Examples
Input: "The API is slow" Action: Profile endpoints, identify slow queries, optimize, verify improvement
Input: "Page load is taking too long" Action: Analyze bundle, check network, optimize critical path, add caching
More from htlin222/dotfiles
cpp
Write modern C++ with RAII, smart pointers, and STL. Use for C++ development, memory safety, or performance optimization.
130refactor
Refactor code for quality and maintainability. Use for cleanup and tech debt reduction.
74data-science
Data analysis, SQL queries, BigQuery operations, and data insights. Use for data analysis tasks and queries.
52c-lang
Write efficient C code with proper memory management and system calls. Use for C optimization, memory issues, or system programming.
46quarto-book
Generate Quarto Book project structure with chapters, configuration, and output settings. Use when user wants to create a book, multi-chapter document, technical manual, or asks about Quarto book setup.
45scientific-figure-assembly
Assemble multi-panel scientific figures with panel labels (A, B, C) at publication quality (300 DPI) using R. Use when combining individual plots into journal-ready figures.
43