_lsprof.c探测器对python多线程的行为

时间:2009-01-14 14:17:20

标签: python multithreading

这是关于Python本机c文件_lsprof的问题。 如果f的执行被另一个线程中断,_lsprof.profile()分析器如何计算在多线程程序中花在函数f上的总时间?

例如:

def f():
  linef1
  linef2
  linef3

def g():
  lineg1
  lineg2

在我们执行的时候,f和g不在同一个线程中:

linef1
linef2
lineg1
linef3
lineg2

然后将f的总运行时间视为需要执行的时间量:

linef1
linef2
linef3

或者它是有效的延迟时间:

linef1
linef2
lineg1
linef3

在_lsprof.profile()的结果中?

2 个答案:

答案 0 :(得分:1)

引用documentation for setprofile

  

该函数是特定于线程的,但是   探查器没有办法   了解上下文之间的切换   线程,所以它没有意义   在存在多个时使用它   线程。

答案 1 :(得分:0)

谢谢你的回答!实际上我在每个上下文中运行一个分析器,所以问题是有道理的。从我做的测试中,探测器将在上面的例子中测量“linef1 linef2 linef3”。