技能 python-performance-optimization
📦

python-performance-optimization

安全

优化 Python 代码性能与性能分析

也可从以下获取: wshobson,ActiveInferenceInstitute

缓慢的 Python 代码会浪费资源并让用户感到沮丧。本技能提供系统的性能分析和优化技术,以识别瓶颈并提升性能。

支持: Claude Codex Code(CC)
🥉 75 青铜
1

下载技能 ZIP

2

在 Claude 中上传

前往 设置 → 功能 → 技能 → 上传技能

3

开启并开始使用

测试它

正在使用“python-performance-optimization”。 分析处理大型列表的函数

预期结果:

时间报告显示 process_data() 消耗了 2.3 秒(占总时间的 85%),其中 90% 的时间花在嵌套循环中。建议:将 O(n²) 算法替换为字典查找以获得 O(n) 性能。

正在使用“python-performance-optimization”。 分析内存使用模式

预期结果:

内存分析显示 data_cache 字典中分配了 500MB 且无限增长。建议:使用 maxsize 参数实现 LRU 缓存或使用 WeakValueDictionary 进行自动清理。

安全审计

安全
v1 • 2/24/2026

Static analysis flagged 68 patterns but all are false positives. The backtick detections are markdown code formatting, not shell execution. Network and URL findings are educational examples using test endpoints. SQLite references are documentation examples. System reconnaissance patterns are legitimate profiling tool demonstrations. This is a documentation-only skill with no executable code or security risks.

2
已扫描文件
908
分析行数
0
发现项
1
审计总数
未发现安全问题
审计者: claude

质量评分

38
架构
100
可维护性
87
内容
50
社区
100
安全
100
规范符合性

你能构建什么

调试慢速 API 端点

分析 Web 应用程序以识别慢速数据库查询并优化响应时间。

优化数据处理管道

分析 ETL 工作流的内存使用和执行时间,以减少资源消耗。

提升算法效率

分析计算代码以识别低效模式并应用适当的优化。

试试这些提示

基础性能分析设置
帮助我分析这个 Python 函数以识别性能瓶颈。以下是我的代码:[paste code]。向我展示如何使用 cProfile 测量执行时间并找到慢速函数。
内存泄漏调查
我的 Python 应用程序内存使用量随时间增加。帮助我使用 memory_profiler 和 tracemalloc 识别以下代码中的内存泄漏:[paste code]。解释输出结果的含义。
优化建议
我已经分析了代码并发现了这些瓶颈:[paste profiling output]。推荐具体的优化技术,并为每个建议展示优化前后的代码示例。
高级生产环境性能分析
指导我设置 py-spy 以在不停止运行中的 Python 生产服务的情况下进行分析。解释如何生成火焰图并解读结果以找到热点路径。

最佳实践

  • 始终在优化前进行性能分析,以识别实际的瓶颈,而非假设的瓶颈
  • 使用适当的数据结构:字典用于查找,集合用于成员测试,生成器用于大型序列
  • 使用 functools.lru_cache 缓存昂贵的计算,并批量执行 I/O 操作以减少系统调用开销

避免

  • 在没有性能分析数据的情况下优化代码会导致在非瓶颈点浪费精力
  • 在循环中使用 + 运算符进行字符串连接而不是使用 join() 会导致二次时间复杂度
  • 当使用基于迭代器的处理就足够时,将整个文件或数据集加载到内存中

常见问题

我应该首先使用哪个性能分析工具?
首先使用 cProfile 进行整体 CPU 性能分析。它内置于 Python 中,可以显示哪些函数消耗最多时间。对于特定热点函数,使用 line_profiler 进行详细的逐行分析。
如何在不影响性能的情况下分析生产环境代码?
使用 py-spy,这是一个附加到正在运行的进程的采样性能分析器,开销很小。它可以生成火焰图,不需要代码更改或重启。
为什么我优化后的代码比原始代码更慢?
常见原因包括对冷路径进行过早优化、添加的复杂性导致缓存未命中,或干扰 Python 内部优化的微优化。始终对更改进行基准测试。
何时应该使用多进程而不是线程?
为 CPU 密集型任务使用多进程以绕过 GIL 并利用多核。为 I/O 密集型任务使用线程或 asyncio,因为在这些任务中 GIL 会在 I/O 操作期间释放。
如何减少 Python 应用程序的内存使用?
对于大型序列使用生成器而不是列表,在具有大量实例的类中实现 __slots__,避免保留不必要的引用,并对缓存使用弱引用。
NumPy 是否总是比纯 Python 更快?
NumPy 由于其 C 实现,在大型数组的向量化数值操作方面表现出色。对于小型数据集或非数值任务,纯 Python 可能更简单且同样快速。