New to Claude Skills? Learn how to install them →

alirezarezvani on GitHub

Performance Profiler

Free

Optimize your applications with systematic performance profiling.

Get this skill

Free · Opens the source repo

What Performance Profiler does

Performance Profiler is a robust tool designed for developers working with Node.js, Python, and Go applications. It systematically identifies performance bottlenecks across CPU, memory, and I/O operations, allowing you to pinpoint issues that may be affecting your application's efficiency. With capabilities such as generating flamegraphs, analyzing bundle sizes, and optimizing database queries, this skill provides a comprehensive approach to performance engineering.

The profiler facilitates in-depth analysis by providing tools for CPU profiling using flamegraphs for Node.js, py-spy for Python, and pprof for Go. Memory profiling features include heap snapshots and garbage collection pressure detection, which are crucial for identifying memory leaks. Additionally, the skill supports bundle analysis through tools like webpack-bundle-analyzer, helping you understand the impact of dependencies on your application's size and load time.

For database optimization, the Performance Profiler employs techniques such as EXPLAIN ANALYZE and slow query logging, enabling you to detect N+1 query problems and improve overall database performance. It also integrates load testing capabilities using k6 and Artillery, allowing you to simulate traffic and assess how your application performs under stress. A key aspect of this tool is its emphasis on measurement; it advocates for establishing a performance baseline before and after optimizations to ensure that changes lead to tangible improvements.

This skill is particularly beneficial for developers facing slow application responses, high latency, or unexpected memory growth. It is also useful when preparing for traffic spikes or when database queries exceed acceptable response times. By providing a structured approach to performance profiling, the Performance Profiler empowers developers to enhance application performance effectively and efficiently.

When to use it

Use this tool when your application is experiencing slowdowns, high latency, or memory issues, especially during performance-critical phases of development.

When not to use it

This skill may not be suitable for applications that are already optimized or for scenarios where performance profiling is not a priority.

What you can build with it

Investigating Slow Endpoints

When an endpoint is slow, use the profiler to identify the specific bottleneck causing the delay.

Preparing for Traffic Spikes

Run load tests before a product launch to ensure your application can handle increased traffic.

Detecting Memory Leaks

Use memory profiling features to track down and resolve memory leaks that may degrade application performance.

How to install Performance Profiler

View source

1. Install with the skills CLI

npx skills add alirezarezvani/claude-skills/performance-profiler --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by alirezarezvani

Performance Profiler

Tier: POWERFUL
Category: Engineering
Domain: Performance Engineering


Overview

Systematic performance profiling for Node.js, Python, and Go applications. Identifies CPU, memory, and I/O bottlenecks; generates flamegraphs; analyzes bundle sizes; optimizes database queries; detects memory leaks; and runs load tests with k6 and Artillery. Always measures before and after.

Core Capabilities

  • CPU profiling — flamegraphs for Node.js, py-spy for Python, pprof for Go
  • Memory profiling — heap snapshots, leak detection, GC pressure
  • Bundle analysis — webpack-bundle-analyzer, Next.js bundle analyzer
  • Database optimization — EXPLAIN ANALYZE, slow query log, N+1 detection
  • Load testing — k6 scripts, Artillery scenarios, ramp-up patterns
  • Before/after measurement — establish baseline, profile, optimize, verify

When to Use

  • App is slow and you don't know where the bottleneck is
  • P99 latency exceeds SLA before a release
  • Memory usage grows over time (suspected leak)
  • Bundle size increased after adding dependencies
  • Preparing for a traffic spike (load test before launch)
  • Database queries taking >100ms

Quick Start

# Analyze a project for performance risk indicators
python3 scripts/performance_profiler.py /path/to/project

# JSON output for CI integration
python3 scripts/performance_profiler.py /path/to/project --json

# Custom large-file threshold
python3 scripts/performance_profiler.py /path/to/project --large-file-threshold-kb 256

Golden Rule: Measure First

# Establish baseline BEFORE any optimization
# Record: P50, P95, P99 latency | RPS | error rate | memory usage

# Wrong: "I think the N+1 query is slow, let me fix it"
# Right: Profile → confirm bottleneck → fix → measure again → verify improvement

Node.js Profiling

→ See references/profiling-recipes.md for details

References

Frequently asked questions about Performance Profiler

Similar skills