Cython文档说“Cython中的分析是由编译器指令控制的。可以通过Cython装饰器为整个文件或每个函数设置。”
有没有简单的方法为整个Python程序启用Cython性能分析?也就是说,每次我想要打开和关闭分析时,有没有办法让我不必经历# cython: profile=True
到几十个文件?
答案 0 :(得分:6)
我相信您可以通过在命令行上将选项传递给cython
来全局设置指令。它在“如何设置指令”(http://docs.cython.org/src/reference/compilation.html#how-to-set-directives)下的文档的“编译”部分中进行了描述。
也可以使用-X开关在命令行上传递指令:
$ cython -X boundscheck = True ...
在命令行上传递的指令将覆盖在标题注释中设置的指令。
如果您正在通过distutils
(setup.py
)进行编译并使用cythonize
函数,则可以添加选项compiler_directives
,这是一个映射指令名称的字典到相应的值。我还没有找到此功能的文档,但它似乎是cython
程序调用{{1}}函数(https://github.com/cython/cython/blob/master/Cython/Build/Cythonize.py#L83)的方式。
例如
cythonize