About profiling-optimization
profiling-optimization is a skill for developers who need to find performance bottlenecks and improve code. It offers guides for several languages and tools, with an emphasis on measuring before optimizing.
Key features
- 01Profile execution to locate bottlenecks
- 02Focus on CPU bottlenecks and hot paths
- 03Consult Node.js, Chrome DevTools, and Python guides
- 04Profile database queries and generate flame graphs
- 05Measure optimization results with benchmarks
Use cases
- 01Investigate slow requests and reduce latency
- 02Find CPU-intensive code paths
- 03Improve application throughput
- 04Verify the impact of performance changes
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ aj-geddes/ useful-ai-prompts --skill profiling-optimizationAfter installing, type/profiling-optimizationin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
references/benchmarking.mdchrome-devtools-cpu-profile.mddatabase-query-profiling.mdflame-graph-generation.mdnodejs-profiling.mdpython-cprofile.mdscripts/validate-api.shtemplates/api-scaffold.yamlDetails
From the project READMEProfiling & Optimization
Table of Contents
Overview
Profile code execution to identify performance bottlenecks and optimize critical paths using data-driven approaches.
When to Use
- Performance optimization
- Identifying CPU bottlenecks
- Optimizing hot paths
- Investigating slow requests
- Reducing latency
- Improving throughput
Quick Start
Minimal working example:
import { performance, PerformanceObserver } from "perf_hooks";
class Profiler {
private marks = new Map<string, number>();
mark(name: string): void {
this.marks.set(name, performance.now());
}
measure(name: string, startMark: string): number {
const start = this.marks.get(startMark);
if (!start) throw new Error(`Mark ${startMark} not found`);
const duration = performance.now() - start;
console.log(`${name}: ${duration.toFixed(2)}ms`);
return duration;
}
async profile<T>(name: string, fn: () => Promise<T>): Promise<T> {
const start = performance.now();
try {
return await fn();
} finally {
// ... (see reference guides for full implementation)
Reference Guides
Detailed implementations in the references/ directory:
| Guide | Contents |
|---|---|
| Node.js Profiling | Node.js Profiling |
| Chrome DevTools CPU Profile | Chrome DevTools CPU Profile |
| Python cProfile | Python cProfile |
| Benchmarking | Benchmarking |
| Database Query Profiling | Database Query Profiling |
| Flame Graph Generation | Flame Graph Generation |
Best Practices
✅ DO
- Profile before optimizing
- Focus on hot paths
- Measure impact of changes
- Use production-like data
- Consider memory vs speed tradeoffs
- Document optimization rationale
❌ DON'T
- Optimize without profiling
- Ignore readability for minor gains
- Skip benchmarking
- Optimize cold paths
- Make changes without measurement
Comments
Markdown supported