python-performance-optimization
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.
By sickn33 · 403 installs
npx skills add sickn33/agentic-awesome-skills --skill python-performance-optimization
Source repository · Upstream listing
Python Performance Optimization
Comprehensive guide to profiling, analyzing, and optimizing Python code for better performance, including CPU profiling, memory optimization, and implementation best practices.
Use this skill when
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
Do not use this skill when
The task is unrelated to python performance optimization
You need a different domain or tool outside this scope
Instructions
Clarify goals, constraints, and required inputs.
Apply relevant best practices and validate outcomes.
Provide actionable steps and verification.
If detailed examples are required, open resources/implementation playbook.md .
Resources
resources/implementation playbook.md for detailed patterns and examples.
Limitations
Use this skill only when the task clearly matches the scope described above.
Do not treat the output as a substitute for environment specific validation, testing, or expert review.
Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
Measurement and operational limits
The playbook contains standalone demonstrations, not a validated benchmark suite. No timings or speedups are established by this skill. Use representative inputs, equal work, repeated runs and recorded interpreter/platform versions. The Fibonacci comparison measures 1 uncached call against 1,000 mostly warm calls; normalize per call and report cold/warm states separately. lru cache(maxsize=None) retains entries without a bound; choose eviction and invalidation for changing or sensitive data.
sys.getsizeof is shallow: a regular instance also owns a dict and references shared or separately allocated values. The printed object size multiplication is not total process memory or a fair complete comparison with slots. Measure representative allocations with tracemalloc or an appropriate process profiler.
Use only approved test endpoints and disposable databases; the query example opens an existing database read only and requires the shown schema. Production profiling requires authorization and bounded collection: profiles can expose code paths, arguments or other sensitive process data. Store artifacts privately. The examples have not been executed or performance tested here.