使用line_profiler分析Cython时出错

时间:2019-09-05 04:17:50

标签: python profiling cython

我试图在.pyx中包含的函数上运行行探查器,并通过distutils.setup进行编译。该函数及其调用可以使用cProfile进行概要分析;但是,我试图找到一个瓶颈,并且进行性能分析会有所帮助。

我试图将Cython设置为在我的pyx标头中使用以下内容。

2019-09-05 03:36:24 ::1 GET /api/values/35 9010 - ::1 Mozilla/5.0/76.0.3809.132+Safari/537.36 - 200 0 0 2093 630 13 - - - api/values/{id}

我还尝试传递disutils编译器指令和定义的宏。

# cython: linetrace=True 
# distutils: define_macros=CYTHON_TRACE_NOGIL=1

无论我做什么,线路分析器都看不到该功能。我收到以下错误消息:

compiler_directives={'linetrace': True, 'bindings': True},
define_macros=[('CYTHON_TRACE_NOGIL', '1')])

运行命令行功能“ kernprof”具有相同的效果,但错误消息略有不同(但显然相关)。

UserWarning: Could not extract a code object for the object <built-in function x>
  # contains convenience functions, global variable definitions, and visualization functions

我能够在.py文件中使用line_profile非cython函数,而不会出现问题。

0 个答案:

没有答案