Python线程的分析

pyt*_*oob 10 python multithreading

我试图弄清楚如何在我的应用程序中测量几个python线程的性能.我目前有几个基于用户输入在不同线程上执行的任务,我想测量执行时间,甚至可能测量每个线程的内存消耗.我试图使用cProfile(在线程的每个实例化,然后我将数据写入文件,然后汇总所有结果),但成效有限.另外,我还有一个问题就是有一些阻塞IO会导致我的结果出现偏差.无论如何有效地描述我的申请?

Kus*_*alP 4

有几种不同的方法可以解决这个问题。cProfile非常棒,并且随 Python 一起提供,但是许多人认为多线程分析是一个问题。解决这个问题的一种方法是为每个线程运行单独的 cProfile 实例,然后使用Stats.add.

如果这没有您希望的那么有用,另一种选择可能是使用Yappi,我已经成功地将其用于一些特殊的多线程情况。它有很好的文档,因此您在设置它时不会遇到太多麻烦。

对于特定于内存的分析,请查看Heapy。但请注意,如果您的代码很糟糕,它可能会创建一些您见过的最大的日志文件!