这是关于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()的结果中?
答案 0 :(得分:1)
引用documentation for setprofile:
该函数是特定于线程的,但是 探查器没有办法 了解上下文之间的切换 线程,所以它没有意义 在存在多个时使用它 线程。
答案 1 :(得分:0)
谢谢你的回答!实际上我在每个上下文中运行一个分析器,所以问题是有道理的。从我做的测试中,探测器将在上面的例子中测量“linef1 linef2 linef3”。