可以在多个线程中使用hotshot吗?

时间:2010-03-04 14:23:21

标签: python multithreading profiling profiler profile

我有一个长期运行的多线程程序,我偶尔会想用Profile.runcall调用一个函数并将数据转储到一个文件中。

hotshot documentation州:Note: The hotshot profiler does not yet work well with threads. It is useful to use an unthreaded script to run the profiler over the code you’re interested in measuring if at all possible.

但是,我测试多个线程同时分析一个函数,我没遇到任何问题。在我的例子中,被分析的函数都是自包含的,并且在执行期间不会产生任何其他线程。我确保每个Profile对象都有自己的文件,这样它们就不会互相破坏。

所以我的猜测是关于多线程的警告意味着如果被分析的函数本身会产生额外的线程,我会遇到问题。当我分析一个确实产生其他线程的测试函数时,生成的线程不会被分析。但是,这似乎仍然没有引起任何问题,因为被分析的函数似乎工作正常。

有人可以确认或反驳热门在多线程程序中运行是否安全?我不想部署可能在以后崩溃的东西,即使它似乎通过了我的初步测试。

1 个答案:

答案 0 :(得分:1)

对于它的价值,我们在CubicWeb中设置了一个设置(使用多个线程)来启用热点分析,到目前为止,我从未在启用分析时遇到过问题。