npx skills add smithery/aj-geddes --skill profiling-optimization
aj-geddes/useful-ai-prompts
profiling-optimization
Profile application performance, identify bottlenecks, and optimize hot paths using CPU profiling, flame graphs, and benchmarking. Use when investigating performance issues or optimizing critical code paths.
Installation
npx skills add aj-geddes/useful-ai-prompts --skill profiling-optimization
Similar popular skills
Related neighbors and high-traction skills in the same topics — useful to compare before installing.
PostgreSQL-specific development assistant focusing on unique PostgreSQL features, advanced data…
15.3K installsUniversal SQL performance optimization assistant for comprehensive query tuning, indexing strat…
14.5K installsComprehensive Power BI DAX formula optimization prompt for improving performance, readability, …
9.1K installsAnalyze and improve business processes. Trigger with "this process is slow", "how can we improv…
2.8K installsLP, MILP, QP — concepts, problem-text parsing, and formulation patterns (parameters, constraint…
2K installsAlso in this package
Other skills from aj-geddes/useful-ai-prompts · top by installs.
npx skills add aj-geddes/useful-ai-prompts
More details
Agent compatibility
Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.
Also listed on
Alternate registries and mirrors of this skill.
Repository health
main
Package contents
Files included with this skill beyond the listing page.
-
skill md
SKILL.md2,531 B -
docs
SUMMARY.md2,426 B
History
- First seen on skills.sh
- First recorded snapshot · 436 installs
SKILL.md
Profiling & Optimization
Table of Contents
- [Overview](#overview)
- [When to Use](#when-to-use)
- [Quick Start](#quick-start)
- [Reference Guides](#reference-guides)
- [Best Practices](#best-practices)
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](references/nodejs-profiling.md) | Node.js Profiling |
| [Chrome DevTools CPU Profile](references/chrome-devtools-cpu-profile.md) | Chrome DevTools CPU Profile |
| [Python cProfile](references/python-cprofile.md) | Python cProfile |
| [Benchmarking](references/benchmarking.md) | Benchmarking |
| [Database Query Profiling](references/database-query-profiling.md) | Database Query Profiling |
| [Flame Graph Generation](references/flame-graph-generation.md) | 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