--- name: python-performance description: Profiles Python code for performance bottlenecks and memory issues. Use when Python code is slow or when profiling for optimization before a release. globs: "**/*.py" alwaysApply: false category: performance tags: - python - performance - profiling - optimization - cProfile - memory tools: [] usage_patterns: - performance-analysis - bottleneck-identification - memory-optimization - algorithm-optimization complexity: intermediate model_hint: standard estimated_tokens: 1200 progressive_loading: true modules: - modules/profiling-tools.md - modules/optimization-patterns.md - modules/memory-management.md - modules/benchmarking-tools.md - modules/best-practices.md --- # Python Performance Optimization Profiling and optimization patterns for Python code. ## Quick Start ```python # Basic timing import timeit time = timeit.timeit("sum(range(1000000))", number=100) print(f"Average: {time / 100:.6f}s") ``` **Verification:** Run the command with `--help` flag to verify availability. ## When To Use - Identifying performance bottlenecks - Reducing application latency - Optimizing CPU-intensive operations - Reducing memory consumption - Profiling production applications - Improving database query performance ## When NOT To Use - Async concurrency - use python-async instead - CPU/GPU system monitoring - use conservation:cpu-gpu-performance - Async concurrency - use python-async instead - CPU/GPU system monitoring - use conservation:cpu-gpu-performance ## Modules This skill is organized into focused modules for progressive loading: ### [profiling-tools](modules/profiling-tools.md) CPU profiling with cProfile, line profiling, memory profiling, and production profiling with py-spy. Essential for identifying where your code spends time and memory. ### [optimization-patterns](modules/optimization-patterns.md) Eleven proven optimization patterns including list comprehensions, generators, caching, string concatenation, data structures, NumPy, multiprocessing, database operations, and loop transformations (what works in Python vs the compiler). ### [memory-management](modules/memory-management.md) Memory optimization techniques including leak tracking with tracemalloc and weak references for caches. Depends on profiling-tools. ### [benchmarking-tools](modules/benchmarking-tools.md) Benchmarking tools including custom decorators and pytest-benchmark for verifying performance improvements. ### [best-practices](modules/best-practices.md) Best practices, common pitfalls, and exit criteria for performance optimization work. Synthesizes guidance from profiling-tools and optimization-patterns. ## Exit Criteria - Profiled code to identify bottlenecks - Applied appropriate optimization patterns - Verified improvements with benchmarks - Memory usage acceptable - No performance regressions