为整个程序启用Cython分析?

时间:2014-12-09 17:01:56

标签: python profiling cython

Cython文档说“Cython中的分析是由编译器指令控制的。可以通过Cython装饰器为整个文件或每个函数设置。”

有没有简单的方法为整个Python程序启用Cython性能分析?也就是说,每次我想要打开和关闭分析时,有没有办法让我不必经历# cython: profile=True到几十个文件?

1 个答案:

答案 0 :(得分:6)

我相信您可以通过在命令行上将选项传递给cython来全局设置指令。它在“如何设置指令”(http://docs.cython.org/src/reference/compilation.html#how-to-set-directives)下的文档的“编译”部分中进行了描述。

  

也可以使用-X开关在命令行上传递指令:

     

$ cython -X boundscheck = True ...

     

在命令行上传递的指令将覆盖在标题注释中设置的指令。

如果您正在通过distutilssetup.py)进行编译并使用cythonize函数,则可以添加选项compiler_directives,这是一个映射指令名称的字典到相应的值。我还没有找到此功能的文档,但它似乎是cython程序调用{​​{1}}函数(https://github.com/cython/cython/blob/master/Cython/Build/Cythonize.py#L83)的方式。

例如

cythonize