Python 有没有好用的性能优化 Profiler 工具?

2022-04-07 22:33:28 +08:00
 zealinux
程序跑得慢,想看看瓶颈在哪里,

我试过了下面几个(应该常用的吧),都没有中意的

- cProfile
- vprof
- pyinstrument
- py-spy


大家有何推荐?
2901 次点击
所在节点    Python
9 条回复
zhoudaiyu
2022-04-08 00:56:44 +08:00
py-spy 挺好用的啊,有啥痛点
zealinux
2022-04-08 09:34:15 +08:00
@zhoudaiyu 我用了它,但没有火焰图出来
windvans
2022-04-08 10:31:41 +08:00
scalene
ruanimal
2022-04-08 15:14:17 +08:00
简单用就 line_profile, 复杂点就是用工具生成火焰图再分析吧
wcsjtu
2022-04-11 14:27:38 +08:00
@windvans 老哥,scalene 怎么针对特定的函数作 profile 啊。 我看它是统计了整个文件的运行时间,连全局的 import 语句的时间也会被统计。 而这些 import 很有可能是在加载模型, 时间会很长。。。。。。

比如说, 下面的代码

```python
import somelib # 加载模型
# ...... 省略部分代码
somelib.process(*args) # 执行推理。 有没有办法只针对这一句做 profile 的
```
ebingtel
2022-04-13 09:12:26 +08:00
@zealinux 用法不对吧?
encro
2022-04-14 17:13:51 +08:00
没记错的话,某个可以直接在需要的函数上加一个装饰器就可以了。
encro
2022-04-14 17:20:10 +08:00
windvans
2022-04-28 09:00:50 +08:00
@wcsjtu @encro 的说法是正确的,貌似文档里面有个功能可以针对某一个代码块或者函数进行 profile

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/845580

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX