我有一个长期运行的多线程程序,我想偶尔调用一个函数
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
对象有自己的文件,这样它们就不会互相击打。
所以我的猜测是关于多个线程的警告意味着,如果被分析的函数本身产生了额外的线程,那么我将遇到问题。当我分析确实生成其他线程的测试函数时,不会分析生成的线程。但是,这似乎仍然不会造成任何问题,因为被分析的函数似乎工作得很好。
有人能确认或反驳在多线程程序中运行热快照是安全的吗?我不想部署一些稍后可能崩溃的东西,即使它似乎通过了我的初始测试。