关于 python-performance-optimization
面向 Python 开发者的性能分析与优化指南,涵盖 CPU、内存、I/O 分析和实现策略,帮助依据测量结果定位瓶颈。
主要功能
- 01CPU、内存与逐行性能分析
- 02检查调用关系和性能指标
- 03优化算法与数据结构
- 04缓存、并行化和原生扩展建议
适用场景
- 01定位 Python 应用的性能瓶颈
- 02减少延迟和内存占用
- 03优化数据库与 I/O 操作
- 04加速数据处理管道
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ wshobson/ agents --skill python-performance-optimization安装后在 Claude Code 中输入/python-performance-optimization确认已加载。
附带文件references/advanced-patterns.mdreferences/details.md
详细介绍
Python 性能优化
全面介绍如何对 Python 代码进行性能剖析、分析和优化以提升性能,包括 CPU 剖析、内存优化和实现最佳实践。
何时使用本技能
- 识别 Python 应用中的性能瓶颈
- 降低应用延迟和响应时间
- 优化 CPU 密集型操作
- 减少内存消耗和内存泄漏
- 提升数据库查询性能
- 优化 I/O 操作
- 加速数据处理流水线
- 实现高性能算法
- 对生产应用进行性能剖析
核心概念
1. 剖析类型
- CPU 剖析:识别耗时函数
- 内存剖析:跟踪内存分配和泄漏
- 逐行剖析:按行级粒度进行剖析
- 调用图:可视化函数调用关系
2. 性能指标
- 执行时间:操作需要多长时间
- 内存使用:峰值和平均内存消耗
- CPU 利用率:处理器使用模式
- I/O 等待:在 I/O 操作上花费的时间
3. 优化策略
- 算法层面:更好的算法和数据结构
- 实现层面:更高效的代码模式
- 并行化:多线程/多进程
- 缓存:避免重复计算
- 原生扩展:对关键路径使用 C/Rust
快速开始
基本计时
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")
详细模式与完整示例
详细的模式文档位于 references/details.md。当上述导航层级不够用时,请阅读该文件。
最佳实践
- 先剖析再优化 - 通过测量找出真正的瓶颈
- 关注热点路径 - 优化执行最频繁的代码
- 使用合适的数据结构 - 查找用 dict,成员判断用 set
- 避免过早优化 - 先保证清晰,再优化
- 使用内置函数 - 它们是用 C 实现的
- 缓存昂贵的计算 - 使用 lru_cache
- 批量执行 I/O 操作 - 减少系统调用
- 对大型数据集使用生成器
- 数值运算考虑使用 NumPy
- 对生产代码进行剖析 - 对在线系统使用 py-spy
常见陷阱
- 未剖析就进行优化
- 不必要地使用全局变量
- 未使用合适的数据结构
- 创建不必要的数据副本
- 未对数据库使用连接池
- 忽视算法复杂度
- 过度优化极少执行的代码路径
- 未考虑内存使用
评论
支持 Markdown