如何配置cdef功能?

时间:2014-04-14 14:40:18

标签: python profiling cython

我有一个使用许多nogil cdef函数的应用程序,我想对它们进行分析 为了找到瓶颈。

我尝试将profile=True指令传递给Cython,但这些函数似乎是imune,因此cProfile.run()的输出包含调用cdef函数的函数的时序,但不是cdef函数本身。

是否有其他指令或分析器可用于分析cdef函数?


编辑:this is link to the application file that I am referring to...。为了配置文件,您必须设置:

#cython: profile=True

在标题处。

1 个答案:

答案 0 :(得分:1)

探查器需要gil,因此,在@Veedrac的评论的帮助下,解决方案是:

  • 仅使用cdef函数而不使用nogil指令
  • #cython: profile=Trueor somewhere else
  • 的标题处设置.pyx

这里的缺点是,通过删除nogil,无法使用prange来分析并行执行。另一个问题仍然是......是否可以分析nogil函数?