cProfile能分析线程内的调用吗?
我在一段代码上运行了cprofile,这段代码主要是创建了几个线程来完成大部分工作。当我查看分析的结果时,发现没有记录线程内部调用的所有函数。我确定这些函数是被调用了,因为它们执行的操作很明显,比如写入数据库等等。
那cProfile是不是不分析线程呢?我是不是漏掉了什么?
1 个回答
9
在这里找到了答案:链接
需要注意的是,使用性能分析工具默认只对主线程有效,如果你使用了其他线程,就无法获取这些线程的信息。这一点在性能分析工具的说明中完全没有提到,可能会让人感到困惑。如果你还想分析线程的性能,可以查看文档中的 threading.setprofile() 函数。