我有一个使用许多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
在标题处。
答案 0 :(得分:1)
探查器需要gil
,因此,在@Veedrac的评论的帮助下,解决方案是:
cdef
函数而不使用nogil
指令#cython: profile=True
(or somewhere else).pyx
这里的缺点是,通过删除nogil
,无法使用prange
来分析并行执行。另一个问题仍然是......是否可以分析nogil
函数?