cProfile能分析线程内的调用吗?

5 投票
1 回答
4823 浏览
提问于 2025-04-15 20:53

我在一段代码上运行了cprofile,这段代码主要是创建了几个线程来完成大部分工作。当我查看分析的结果时,发现没有记录线程内部调用的所有函数。我确定这些函数是被调用了,因为它们执行的操作很明显,比如写入数据库等等。

那cProfile是不是不分析线程呢?我是不是漏掉了什么?

1 个回答

9

在这里找到了答案:链接

需要注意的是,使用性能分析工具默认只对主线程有效,如果你使用了其他线程,就无法获取这些线程的信息。这一点在性能分析工具的说明中完全没有提到,可能会让人感到困惑。如果你还想分析线程的性能,可以查看文档中的 threading.setprofile() 函数。

撰写回答