如何在不运行完Python代码的情况下分析其性能?

5
作为一名Python脚本编写者,我使用了第三方模块,但是当工作负载过大时,操作系统(Linux,32GB内存)总是在脚本完成之前将其杀死。我们从syslog中得知,由于物理内存不足,操作系统通过OOM将其杀死。
许多当前的性能分析工具,例如profile,需要脚本完成才能进入脚本使用的模块。因此,我认为这应该是一个常见情况,在这种情况下迫切需要性能分析。有什么建议吗?

也许这是不可判定的!赖斯定理(我意识到这条评论对你的情况没有任何帮助,但从理论角度来看可能很有趣) - sakurasunris3
1
@MarshallWhite 这就是为什么静态分析工具会有误报和漏报。但它们确实存在。 - UmNyobe
@Gribouillis,我意识到这是一个非常有趣的内存分析模块,感谢您的帮助 :) 它在一定程度上解决了我的问题,但它可能无法告诉程序在哪里卡住了。例如,可以告诉像函数花费比预期更长的时间或无限循环的情况。我正在研究这个问题。非常感谢。 - Charley
@MarshallWhite 我没意识到有这样的理论 :-P 但它看起来很有趣,值得深思。 - Charley
@LoïcFaure-Lacroix 你说得非常正确。由于我的许多工作都是基于第三方模块构建的,我应该弄清楚它是如何构建的,这非常必要,谢谢。但是有时候这个模块变得非常复杂,你不知道从哪里开始。也许我只需要更有耐心 :-P 并学习一些软件工程知识。 - Charley
显示剩余4条评论
1个回答

0

从原始问题:


Profile 是一款非常棒的性能分析工具,不需要完成并且可以进入脚本使用的模块。我认为对于这个问题,最好的答案是使用 Profile。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接