home/business/performance-audit-2

Performance Audit

GPTClaudeGemini··1,235 copies·updated 2026-07-14
performance-audit-2.prompt
# Performance Audit -- Thinking Framework

Apply this framework to investigate and resolve performance problems. Measure first, optimize second.

## 1. Baseline Metrics

Establish what you are measuring before changing anything:
- Define the specific metric: response time (p50, p95, p99), Time to Interactive, Largest Contentful Paint, memory usage, query count, or throughput?
- Measure under realistic conditions: production-like data volume, concurrent users, cold vs warm cache
- Record the current numbers. Without a baseline, you cannot prove improvement.
- Identify the target: what number would make this "fast enough"? Define the SLA.

Do not optimize without a measurable goal.

## 2. Profiling

Identify where time and resources are actually spent:
- **Server:** Use profiling tools (flame graphs, query analyzers, APM traces) to find the slowest operations
- **Client:** Use browser DevTools Performance tab, Lighthouse, or React Profiler to find rendering bottlenecks
- **Network:** Inspect the waterfall in DevTools Network tab -- sequential requests, large payloads, missing compression
- **Database:** Run EXPLAIN on slow queries, check for sequential scans, missing indexes, lock contention

Profile the actual slow path. Do not guess based on code reading alone.

## 3. Bottleneck Identification

From profiling data, identify the top 3 bottlenecks by impact:

For each bottleneck, document:
- What operation is slow and where in the code it occurs
- How much of total time/resources it consumes (percentage)
- Why it is slow (algorithmic complexity, I/O wait, contention, payload size)
- Whether it is on the critical path or can be deferred

Focus on the critical path. A slow background job may not matter.

## 4. Optimization Options

For each bottleneck, enumerate approaches with effort-vs-impact analysis:

Consider these categories:
- **Eliminate:** Can the work be avoided entirely? (unnecessary queries, redundant computations, dead code paths)
- **Cache:** Can the result be reused? (HTTP caching, memoization, materialized views, CDN)
- **Defer:** Can it happen later? (lazy loading, background processing, streaming)
- **Parallelize:** Can it happen concurrently? (Promise.all, worker threads, concurrent queries)
- **Reduce:** Can the amount of work be reduced? (pagination, projection, compression, smaller payloads)
- **Optimize:** Can the algorithm be improved? (better data structure, index, batch operation)

Rate each option: effort (hours/days/weeks) vs expected improvement (percentage).

## 5. Implementation Priority

Order optimizations by value:
1. Quick wins: low effort, meaningful impact (caching, removing N+1, adding an index)
2. High-impact investments: significant effort, large improvement (architectural change, new caching layer)
3. Diminishing returns: skip unless the target SLA demands it

Implement one optimization at a time. Measure after each change.

## 6. Verification

After each optimization:
- Re-measure using the same methodology as the baseline
- Compare against the target SLA
- Check for regressions in correctness (does the optimization change behavior?)
- Check for regressions in other performance dimensions (faster response but higher memory?)
- Load test to verify the improvement holds under realistic concurrency
- Document the before/after numbers for future reference

when to use it

Community prompt sourced from the open-source GitHub repo eddiebelaval/squire (MIT). A "Performance Audit" style prompt — adapt the placeholders and specifics to your task. Imported as-is and not independently retested here, so check the output before relying on it.

tags

businesscommunitygeneral

source

eddiebelaval/squire · MIT