[Skill分享]Python代码性能优化,未上传文件

** Python性能优化技能**

** Skill 介绍**

** 背景**

Python 作为一门解释型语言,其执行效率相较于编译型语言(如 C++、Java)往往较低。在处理大数据、高性能计算或实时应用场景时,性能问题尤为突出。开发者常常面临代码运行慢、内存占用高、响应延迟长等问题,但又缺乏系统性的优化思路和工具。

本技能旨在帮助开发者快速识别 Python 代码中的性能瓶颈,提供经过验证的优化方案,并引导开发者使用正确的工具进行性能分析。

** 使用场景**

  • 代码审查阶段:在代码合并前进行性能检查

  • 性能调优:当程序运行速度不满足需求时

  • 学习优化技巧:了解 Python 性能优化的最佳实践

  • 大数据处理:处理大规模数据集时的性能优化

  • 高并发服务:Web 服务、API 接口的性能提升

  • 内存优化:降低程序内存占用,避免内存泄漏


具体使用方法

如何调用

1. 通过 Trae IDE 调用

在 Trae IDE 中,当你需要优化 Python 代码时,直接使用该技能:


请帮我优化这段 Python 代码的性能

分析这个文件的性能问题

2. 命令行使用


# 分析单个文件

python main.py your_file.py

# 查看优化建议

python main.py

操作步骤
步骤一:性能测量(先测量,后优化)

import cProfile
# 运行性能分析
cProfile.run('your_function()')

步骤二:识别瓶颈

  1. 使用 cProfile 找出耗时最多的函数

  2. 使用 line_profiler 分析具体代码行

  3. 使用 memory_profiler 检查内存使用

步骤三:应用优化方案

根据分析结果,参考技能文档中的 10 大常见问题及解决方案进行优化

步骤四:验证优化效果

使用 timeit 测量优化前后的执行时间:


import timeit

# 测量执行时间

timeit.timeit('your_function()', number=1000)


Skill 编写思路或技巧
怎么写好一个 Skill
1. 明确 Skill 的定位

  • 解决什么问题:清晰定义技能的核心价值

  • 目标用户是谁:初学者、中级开发者、专家

  • 使用场景:何时应该使用这个技能

2. 结构化内容

好的 Skill 应该包含以下结构:


├── 问题识别(What's wrong)

├── 解决方案(How to fix)

├── 代码示例(Code examples)

├── 工具推荐(Tools)

├── 最佳实践(Best practices)

└── 注意事项(Caveats)

3. 提供可操作的代码示例

  • 对比展示:低效代码 vs 高效代码
  • 可直接复制运行的示例
  • 注释说明优化原理

4. 包含分析工具

不仅要告诉用户"怎么优化",还要告诉用户"怎么发现问题"

5. 加入原则和方法论

  • 优化的优先级

  • 什么时候应该优化

  • 优化的边界(不要过度优化)

6. 保持更新

技能文档应该:

  • 与时俱进,包含最新的库和工具

  • 收录社区最佳实践

  • 提供版本兼容性说明


文件结构说明


python-performance-optimizer/

├── skill.json      # 技能核心配置

├── main.py         # 执行逻辑代码

├── README.md       # 详细使用文档

└── SKILL.md        # 技能详细内容(保留原有格式)

常见问题速查表

| 问题 | 解决方案 | 优先级 |

|------|----------|--------|

| 循环中使用 append | 列表推导式 | :star::star::star: |

| 字符串 += 拼接 | str.join() | :star::star::star: |

| 重复计算 | lru_cache 缓存 | :star::star: |

| list 成员检查 | set 成员检查 | :star::star: |

| 频繁访问全局变量 | 局部变量/参数 | :star::star: |

| 内存占用高 | _slots_ / 生成器 | :star: |预先格式化的文本

是不是发重复了

1 个赞

是不是发重复了

是不是发重复了

原来的格式不规范 我也没权限删掉 :rofl:

哈哈哈,经常写脚本,从来没考虑它的性能问题。

确实 现在很少考虑性能