performance-profiling

timequity's avatarfrom timequity

Identify performance bottlenecks systematically. Measure before optimizing.

⭐0stars🔀0forks📁View on GitHub🕐Updated Dec 18, 2025

When & Why to Use This Skill

This Claude skill provides a systematic framework for performance profiling, enabling developers and SREs to identify and resolve system bottlenecks through a data-driven 'Measure-Optimize-Verify' methodology. It offers actionable guidance for optimizing Node.js applications, web browsers, and databases to enhance application speed, reduce latency, and improve resource efficiency.

Use Cases

  • Web Performance Optimization: Identifying blocking resources and large bundles using browser DevTools to improve Core Web Vitals and page load speeds.
  • Backend Efficiency Analysis: Profiling Node.js applications with tools like --prof or clinic.js to detect CPU-intensive functions and memory leaks in critical execution paths.
  • Database Query Tuning: Diagnosing slow API responses by identifying N+1 queries and missing indexes using EXPLAIN ANALYZE and query logs.
  • Infrastructure Resource Management: Troubleshooting unexpected CPU spikes and unbounded memory growth by analyzing call counts and allocation patterns to prevent system instability.
nameperformance-profiling
descriptionIdentify performance bottlenecks systematically. Measure before optimizing.

Performance Profiling

Core Principle

Measure first. Optimize second. Verify third.

Never optimize based on intuition. Profile to find actual bottlenecks.

The Process

1. Establish Baseline

# Node.js
node --prof app.js
node --prof-process isolate-*.log > profile.txt

# Browser
Performance tab → Record → Analyze

2. Identify Bottlenecks

Look for:

  • Functions with high "self time"
  • Unexpected call counts
  • Memory allocations in hot paths
  • N+1 queries

3. Form Hypothesis

"Function X is slow because Y"

4. Optimize Minimally

One change at a time:

  • Caching
  • Algorithm improvement
  • Batch operations
  • Lazy loading

5. Verify Improvement

Compare against baseline. Must be measurably better.

Common Bottlenecks

Symptom Likely Cause
Slow page load Large bundle, blocking resources
Slow API N+1 queries, missing indexes
Memory growth Leaks, unbounded caches
CPU spikes Inefficient loops, regex

Tools

Node.js:

  • --prof flag
  • clinic.js
  • 0x flame graphs

Browser:

  • DevTools Performance
  • Lighthouse
  • WebPageTest

Database:

  • EXPLAIN ANALYZE
  • Query logs
  • Connection pool stats

Red Flags

  • Optimizing without profiling
  • "I think this is slow"
  • Premature optimization
  • Micro-optimizations in cold paths