From johnlindquist-claude
Performance profiling and optimization. Use for benchmarking code, analyzing performance, running Lighthouse audits, and finding hotspots.
npx claudepluginhub joshuarweaver/cascade-ai-ml-engineering --plugin johnlindquist-claudeThis skill uses the workspace's default tool permissions.
Profile, benchmark, and optimize code performance.
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
Profile, benchmark, and optimize code performance.
# Node.js for profiling
node --version
# Lighthouse for web perf
npm install -g lighthouse
# Gemini for analysis
pip install google-generativeai
export GEMINI_API_KEY=your_api_key
# Time a Node.js script
time node script.js
# With memory
/usr/bin/time -l node script.js # macOS
/usr/bin/time -v node script.js # Linux
// benchmark.js
const { performance, PerformanceObserver } = require('perf_hooks');
const obs = new PerformanceObserver((list) => {
console.log(list.getEntries()[0].duration);
});
obs.observe({ entryTypes: ['measure'] });
performance.mark('start');
// Code to benchmark
yourFunction();
performance.mark('end');
performance.measure('duration', 'start', 'end');
console.time('operation');
// Code to time
console.timeEnd('operation'); // Prints: operation: 123.456ms
# Generate profile
node --prof script.js
# Process the log
node --prof-process isolate-*.log > profile.txt
# Start with inspector
node --inspect script.js
# Break on start
node --inspect-brk script.js
# Open Chrome DevTools
open chrome://inspect
# Heap snapshot
node --heapsnapshot-signal=SIGUSR2 script.js
# Then: kill -USR2 <pid>
# Expose GC for testing
node --expose-gc script.js
# Full audit
lighthouse https://example.com
# Output to JSON
lighthouse https://example.com --output=json --output-path=report.json
# Output to HTML
lighthouse https://example.com --output=html --output-path=report.html
# Specific categories
lighthouse https://example.com --only-categories=performance
# Mobile vs Desktop
lighthouse https://example.com --preset=desktop
lighthouse https://example.com --preset=mobile # default
lighthouse https://example.com \
--only-categories=performance \
--output=json \
--output-path=perf-report.json
# Headless
lighthouse https://example.com --chrome-flags="--headless"
# Custom viewport
lighthouse https://example.com --chrome-flags="--window-size=1920,1080"
CODE=$(cat slow-function.ts)
gemini -m pro -o text -e "" "Analyze this code for performance issues:
$CODE
Identify:
1. Time complexity issues
2. Memory leaks or bloat
3. Unnecessary operations
4. Opportunities for optimization
5. Caching opportunities
Provide specific recommendations with code examples."
PROFILE=$(cat profile.txt)
gemini -m pro -o text -e "" "Analyze this Node.js profile:
$PROFILE
Identify:
1. Hot functions (most time spent)
2. Potential bottlenecks
3. Optimization opportunities
4. Priority of fixes"
# Record CPU profile
node --cpu-prof script.js
# Analyze generated .cpuprofile
# Open in Chrome DevTools or use:
npx speedscope *.cpuprofile
# Find large objects
node --heapsnapshot-signal=SIGUSR2 app.js
# Use clinic.js
npx clinic doctor -- node script.js
npx clinic flame -- node script.js
npx clinic bubbleprof -- node script.js
# Webpack
npx webpack-bundle-analyzer stats.json
# Vite
npx vite build --report
# Generic
du -sh dist/*
ls -lhS dist/*.js
gemini -m pro -o text -e "" "Check this code for common performance anti-patterns:
$(cat src/*.ts)
Look for:
- Synchronous I/O in hot paths
- Repeated DOM queries
- Unnecessary re-renders
- N+1 query patterns
- Memory leaks in closures
- Blocking the event loop"
gemini -m pro -o text -e "" "Create a performance optimization checklist for:
Application type: [web app / API / CLI]
Stack: [your stack]
Current issues: [symptoms]
Include priority order and estimated impact."
#!/bin/bash
# benchmark-compare.sh
echo "=== Before optimization ==="
git checkout main
npm install
time npm run benchmark
echo "=== After optimization ==="
git checkout optimization-branch
npm install
time npm run benchmark
#!/bin/bash
# Run same benchmark multiple times
for i in {1..10}; do
echo "Run $i:"
node benchmark.js
done | tee results.txt
# Calculate average
grep "time:" results.txt | awk '{sum+=$2; n++} END {print "Average:", sum/n}'