关于 python-performance-optimization
面向排查 Python 应用速度慢或资源占用高问题的性能指导技能。涵盖 CPU、内存和代码路径分析,并介绍算法、I/O 与实现层面的优化方法。
主要功能
- 01CPU 与内存分析
- 02逐行分析和调用图
- 03执行与资源指标
- 04算法和数据结构指导
- 05缓存、批处理与并行策略
适用场景
- 01定位 Python 应用性能瓶颈
- 02降低延迟或内存用量
- 03改进数据处理流水线
- 04评估生产环境性能
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ full-stack-skills/ python-skills --skill python-performance-optimization安装后在 Claude Code 中输入/python-performance-optimization确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
LICENSE.txtagents/openai.yamlexamples/advanced-usage.mdbasic-usage.mdintegration.mdreferences/advanced-patterns.mddetails.md详细介绍
来源声明:本技能内容源自 wshobson/agents (MIT License, Copyright (c) 2024 Seth Hobson;完整许可文本见同目录
LICENSE.txt)。 使用、修改与再分发须遵守该 MIT 许可条款并保留版权声明。
中文描述
本技能提供全栈开发相关的最佳实践和模式指导。
name: python-performance-optimization description: 使用 cProfile、内存分析器和性能最佳实践对 Python 代码进行性能分析和优化。适用于调试运行缓慢的 Python 代码、优化瓶颈或提升应用性能。
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
常见陷阱
- 未进行性能分析就开始优化
- 不必要地使用全局变量
- 未使用合适的数据结构
- 创建不必要的数据副本
- 未对数据库使用连接池
- 忽略算法复杂度
- 过度优化罕见的代码路径
- 未考虑内存使用量
能力边界
✅ 擅长处理
- 全栈开发相关的最佳实践
- 代码架构设计指导
- 性能优化建议
⚠️ 需要素材
- 具体的项目上下文
- 技术栈信息
❌ 超出范围
- 非技术领域的业务决策
- 具体的代码实现(仅提供指导)
工作流程
步骤 1:需求分析
理解项目需求和技术约束
步骤 2:架构设计
设计系统架构和组件划分
步骤 3:实现指导
提供具体的实现建议和代码模式
步骤 4:代码审查
审查代码质量和最佳实践遵循情况
步骤 5:优化建议
提供性能优化和改进建议
注意事项
1. 过度设计
避免在简单场景中使用复杂的设计模式
2. 忽视性能
不要忽视性能优化,特别是在生产环境中
3. 安全考虑
始终考虑安全性和数据保护
4. 测试覆盖
确保有足够的测试覆盖,特别是边界情况
5. 文档维护
保持文档与代码同步更新
评论
支持 Markdown