Python Performance Optimization

by wshobson46891e7e60daNo licenseListed Oct 8, 2026Updated Oct 8, 2026

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.

Instructions onlySoftware Development
AI-generated overview

Guide to profiling and optimizing Python code with cProfile, memory profilers, and performance best practices.

What it does
Provides an instructional guide for profiling, analyzing, and optimizing Python code. It covers CPU, memory, line, and call-graph profiling, performance metrics such as execution time and memory usage, and optimization strategies including algorithms, parallelization, caching, and native extensions. It also lists best practices and common pitfalls, with further worked patterns in a reference document.
When to use it
Use when Python code is slow and bottlenecks need to be found, when reducing latency, memory use, or memory leaks, or when optimizing CPU-intensive, I/O-bound, or data-processing pipelines. Also relevant when profiling production applications.
Requirements
No scripts or tooling are bundled; it is instructions plus two reference documents. The described workflow assumes Python and profiling tools such as cProfile, timeit, memory profilers, and py-spy, but none are installed or required by the skill itself.

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 measurementsimport 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

Source and attribution

Source:wshobson/agentsinplugins/python-development/skills/python-performance-optimizationat commit46891e7

License: No license

Content belongs to its original authors. SourceWeft indexes it from a public repository.

Report or request removal

Python Performance Optimization Agent Skill | SourceWeft