PY

python-performance-optimization

Tools and techniques to profile CPU/memory usage and optimize Python code performance.

Install

mkdir -p .claude/skills/python-performance-optimization && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/352" && unzip -o skill.zip -d .claude/skills/python-performance-optimization && rm skill.zip

Installs to .claude/skills/python-performance-optimization

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Profile and optimize Python code using cProfile, memory profilers, and performance best practices. Use when debugging slow Python code, optimizing bottlenecks, or improving application performance.
197 chars✓ has a “when” trigger
Intermediate

Key capabilities

  • Perform CPU profiling to identify time-consuming functions
  • Track memory allocation and identify leaks
  • Profile code at line-by-line granularity
  • Visualize function call relationships
  • Implement parallelization and caching strategies

How it works

The skill utilizes profiling tools to measure execution time and memory consumption, allowing for the identification of bottlenecks in hot paths. It then suggests implementation changes such as using built-in functions or algorithmic improvements.

Inputs & outputs

You give it
Python source code file
You get back
Performance metrics report including execution time and memory usage

When to use python-performance-optimization

  • Identify slow functions using cProfile
  • Optimize memory-intensive scripts
  • Reduce application latency
  • Implement efficient data processing pipelines

About this skill

Python Performance Optimization

Comprehensive guide to profiling, analyzing, and optimizing Python code for better performance, including CPU profiling, memory optimization, and implementation best practices.

When to Use This Skill

  • Identifying performance bottlenecks in Python applications
  • Reducing application latency and response times
  • Optimizing CPU-intensive operations
  • Reducing memory consumption and memory leaks
  • Improving database query performance
  • Optimizing I/O operations
  • Speeding up data processing pipelines
  • Implementing high-performance algorithms
  • Profiling production applications

Core Concepts

1. Profiling Types

  • CPU Profiling: Identify time-consuming functions
  • Memory Profiling: Track memory allocation and leaks
  • Line Profiling: Profile at line-by-line granularity
  • Call Graph: Visualize function call relationships

2. Performance Metrics

  • Execution Time: How long operations take
  • Memory Usage: Peak and average memory consumption
  • CPU Utilization: Processor usage patterns
  • I/O Wait: Time spent on I/O operations

3. Optimization Strategies

  • Algorithmic: Better algorithms and data structures
  • Implementation: More efficient code patterns
  • Parallelization: Multi-threading/processing
  • Caching: Avoid redundant computation
  • Native Extensions: C/Rust for critical paths

Quick Start

Basic Timing

import time

def measure_time():
    """Simple timing measurement."""
    start = time.time()

    # Your code here
    result = sum(range(1000000))

    elapsed = time.time() - start
    print(f"Execution time: {elapsed:.4f} seconds")
    return result

# Better: use timeit for accurate measurements
import timeit

execution_time = timeit.timeit(
    "sum(range(1000000))",
    number=100
)
print(f"Average time: {execution_time/100:.6f} seconds")

Detailed patterns and worked examples

Detailed pattern documentation lives in references/details.md. Read that file when the navigation tier above is insufficient.

Best Practices

  1. Profile before optimizing - Measure to find real bottlenecks
  2. Focus on hot paths - Optimize code that runs most frequently
  3. Use appropriate data structures - Dict for lookups, set for membership
  4. Avoid premature optimization - Clarity first, then optimize
  5. Use built-in functions - They're implemented in C
  6. Cache expensive computations - Use lru_cache
  7. Batch I/O operations - Reduce system calls
  8. Use generators for large datasets
  9. Consider NumPy for numerical operations
  10. Profile production code - Use py-spy for live systems

Common Pitfalls

  • Optimizing without profiling
  • Using global variables unnecessarily
  • Not using appropriate data structures
  • Creating unnecessary copies of data
  • Not using connection pooling for databases
  • Ignoring algorithmic complexity
  • Over-optimizing rare code paths
  • Not considering memory usage

When not to use it

  • Optimizing code without prior profiling
  • Over-optimizing rare code paths

Prerequisites

cProfiletimeitpy-spy

Limitations

  • Requires profiling before optimization to avoid premature changes
  • Performance gains depend on identifying the correct hot paths

How it compares

Unlike manual timing, this approach uses systematic profiling to measure performance before applying targeted optimizations.

Compared to similar skills

python-performance-optimization side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
python-performance-optimization (this skill)272moNo flagsIntermediate
optimizing-performance12moReviewIntermediate
codex-code-review18moReviewIntermediate
memory-optimization16moNo flagsIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

More by wshobson

View all by wshobson

You might also like

optimizing-performance

CloudAI-X

Analyzes and optimizes application performance across frontend, backend, and database layers. Use when diagnosing slowness, improving load times, optimizing queries, reducing bundle size, or when asked about performance issues.

113

codex-code-review

tyrchen

Perform comprehensive code reviews using OpenAI Codex CLI. This skill should be used when users request code reviews, want to analyze diffs/PRs, need security audits, performance analysis, or want automated code quality feedback. Supports reviewing staged changes, specific files, entire directories, or git diffs.

16

memory-optimization

benchflow-ai

Optimize Python code for reduced memory usage and improved memory efficiency. Use when asked to reduce memory footprint, fix memory leaks, optimize data structures for memory, handle large datasets efficiently, or diagnose memory issues. Covers object sizing, generator patterns, efficient data structures, and memory profiling strategies.

14

benchmark-kernel

flashinfer-ai

Guide for benchmarking FlashInfer kernels with CUPTI timing

10

python-performance-optimization

netbarros

Profile and optimize Python code using cProfile, memory profilers, and performance best practices. Use when debugging slow Python code, optimizing bottlenecks, or improving application performance.

00

nsys-capture

gujialiang123

Wrap an arbitrary action (a bench run, a single curl, an N-second sleep) with `nsys profile`, then immediately export the .nsys-rep to SQLite so downstream skills can SQL-query it without reopening the binary trace.

00

Search skills

Search the agent skills registry