我在一些代码上运行了cprofile,其中包括执行大部分工作的几个线程。 当我查看分析的输出时,我看到没有记录在线程内调用的所有函数。我确信他们被调用了,因为他们做了很容易看到的东西,例如写入DB等。
cProfile不会分析线程吗?我错过了什么吗?
答案 0 :(得分:7)
在这里找到答案:link
值得指出的是,使用探查器仅在主线程上工作(默认情况下),如果您使用它们,则不会从其他线程获取任何信息。这可能是一个问题,因为它在分析器文档中完全没有提及。 如果您还想要分析线程,您需要查看文档中的threading.setprofile()函数。