python-performance-optimization — Claude Code skill
This skill profiles Python code to locate CPU and memory bottlenecks. Use it when an application responds slowly or consumes too many resources.
/plugin marketplace add wshobson/agents
/plugin install python-development@claude-code-workflowsWhat python-performance-optimization does
The skill moves from measurement to code changes. It covers CPU, line and memory profiling, along with execution time, memory use, CPU utilisation and I/O wait. Its examples use time and timeit, while call graphs help inspect function relationships.
Guidance includes choosing data structures, caching with lru_cache, batching I/O, generators and NumPy for numerical work. It points to py-spy for live systems and keeps detailed patterns in references/details.md. Install it when you have a measured hot path; changing code before profiling is guesswork.
What it helps with
- find slow functions in a Python application
- measure runtime with
timeit - trace memory allocation and leaks
- improve a CPU-intensive code path
- reduce I/O operations
Example prompts for the agent
- Profile this Python script and identify the hot paths.
- Check why this data-processing code uses so much memory.
- Measure this code with `timeit` and suggest changes after profiling.
How to install python-performance-optimization
1Plugin marketplace
/plugin marketplace add wshobson/agents/plugin install python-development@claude-code-workflows2Skills CLI (Vercel)
npx skills add wshobson/agents --skill python-performance-optimization -a claude-code3Manually: put the files in place
~/.claude/skills/python-performance-optimization/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/python-performance-optimization/
1Skills CLI (Vercel)
npx skills add wshobson/agents --skill python-performance-optimization -a codex2Manually: put the files in place
.agents/skills/python-performance-optimization/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add wshobson/agents --skill python-performance-optimization -a cursor2Manually: put the files in place
.cursor/skills/python-performance-optimization/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install wshobson/agents python-performance-optimization2Manually: put the files in place
.github/skills/python-performance-optimization/SKILL.mdPlatform CLI
gemini skills install https://github.com/wshobson/agents --path plugins/python-development/skills/python-performance-optimizationManually: put the files in place
.devin/skills/python-performance-optimization/SKILL.mdThe legacy .windsurf/skills/ path still works
Claude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Similar
Questions about python-performance-optimization
How do I install python-performance-optimization in Claude Code?
Run npx skills add wshobson/agents --skill python-performance-optimization -a claude-code. The skill is also available through the plugin from wshobson/agents.
What does python-performance-optimization do?
It guides profiling and analysis of Python performance issues. It covers CPU work, memory, I/O, algorithms and implementation patterns.
When should I use py-spy?
The skill recommends py-spy for profiling live systems. Its local measurement examples use time and timeit.
Source text
SKILL.md · MIT
---
name: python-performance-optimization
description: 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.
---
# 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
```python
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
© Seth Hobson · MIT · wshobson/agents