如何打印 Python 线程堆栈?

2021-04-27 20:32:22 +08:00
 zhoudaiyu

现在线程占用 CPU 比较多,但是代码用的开源的,还没有理清逻辑,想直接在线 debug 一下线程。用什么工具好? GDB 、pyflame,还是其他什么工具?

2260 次点击
所在节点    Python
11 条回复
Kasumi20
2021-04-27 20:58:53 +08:00
歪个楼。堆就是堆,栈就是栈,为什么栈要说成堆栈?
zhoudaiyu
2021-04-27 21:05:55 +08:00
@Kasumi20 平时说习惯了,应该是栈
ch2
2021-04-27 21:11:00 +08:00
@Kasumi20 #1 堆栈加在一起就是内存
786375312123
2021-04-27 21:34:16 +08:00
pycharm 上 debugger 可以直接看 stack trace
zhoudaiyu
2021-04-27 21:35:45 +08:00
@786375312123 额 是跑在服务器上的 websocket 服务 好像不能这么玩
786375312123
2021-04-27 21:41:06 +08:00
@zhoudaiyu GDB 不也是 debugger 吗?而且我没听说过 gdb 支持 py 的
Pagliacii
2021-04-28 09:57:19 +08:00
ruanimal
2021-04-28 10:30:59 +08:00
@786375312123 支持的,其实就是 debug python 解释器
xingheng
2021-04-28 22:14:02 +08:00
RTFM before your asking!
lcvs
2021-04-28 23:04:22 +08:00
可以试试 py-spy,可以对正在运行中的程序进行采样分析
https://github.com/benfred/py-spy
zhoudaiyu
2021-04-28 23:17:26 +08:00
@lcvs 这个太棒了,感谢感谢

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

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

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

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

© 2021 V2EX