# Python Performance Optimization > Perfila y optimiza código Python usando cProfile, profilers de memoria y buenas prácticas de rendimiento; útil para depurar código lento y mejorar la performance de la aplicación. Fuente: https://skillsagentes.com/skills/wshobson/agents/python-performance-optimization Markdown: https://skillsagentes.com/skills/wshobson/agents/python-performance-optimization.md Repositorio: https://github.com/wshobson/agents Autor: wshobson Licencia: MIT Actualizado: hace 4 meses Coste de contexto: 49 tok instalada, 813 tok al activarse, 5.3k tok con todos los archivos del bundle Bundle: 3 archivos, 21 KB Permisos que pide: ninguno declarado ## Instalación Un skill son archivos markdown: los mismos archivos valen para cualquier agente y lo único que cambia es el directorio de destino, es decir la bandera `--agent`. Añade `-g` para instalarlo en todos los proyectos de la máquina. ```bash # Claude Code npx -y skills add wshobson/agents --skill python-performance-optimization --agent claude-code # Cursor npx -y skills add wshobson/agents --skill python-performance-optimization --agent cursor # Codex npx -y skills add wshobson/agents --skill python-performance-optimization --agent codex # Gemini CLI npx -y skills add wshobson/agents --skill python-performance-optimization --agent gemini # Windsurf npx -y skills add wshobson/agents --skill python-performance-optimization --agent windsurf # Cline npx -y skills add wshobson/agents --skill python-performance-optimization --agent cline ``` ## Qué hace - Perfila código Python con cProfile, memory profilers y line profiling - Detecta cuellos de botella de CPU, memoria e I/O - Aplica estrategias de optimización: algorítmica, caching, paralelización, extensiones nativas - Aporta buenas prácticas y errores comunes al optimizar rendimiento en Python ## Cuándo usarla - Identificar cuellos de botella de rendimiento en aplicaciones Python - Reducir latencia y tiempos de respuesta - Optimizar operaciones intensivas en CPU o reducir consumo de memoria - Mejorar rendimiento de consultas a bases de datos o pipelines de datos ## Qué la activa - "Mi script Python va muy lento, ayúdame a perfilarlo" - "Necesito reducir el uso de memoria de esta aplicación" - "¿Cómo optimizo esta función que se ejecuta millones de veces?" ## Archivos - SKILL.md — 3 KB - references/advanced-patterns.md — 10 KB - references/details.md — 7 KB ## SKILL.md Reproducido tal cual desde wshobson/agents bajo MIT. Esta sección es el documento original y está en inglés. # 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 ## Dónde encaja - Categoría: [Herramientas para desarrolladores](https://skillsagentes.com/categorias/herramientas-desarrollo.md) — Skills que cambian cómo tu agente escribe, revisa y despliega código. - Creador: [wshobson](https://skillsagentes.com/creators/wshobson.md) — 183 skills en el directorio - [Todas las skills](https://skillsagentes.com/skills.md) - [Ranking de instalaciones](https://skillsagentes.com/ranking.md) --- Skills Agentes · [Índice de páginas en markdown](https://skillsagentes.com/sitemap.md) · [Inicio](https://skillsagentes.com/index.md)