如何提高Cython性能?

时间:2013-04-02 22:07:01

标签: python performance cython

我正在使用Cython做我的第一步,我想知道如何进一步提高性能。 到目前为止,我已达到通常(仅限python)执行时间的一半,但我认为必须有更多!

我知道cython -a我已经输入了我的变量。但是我的功能还有很多黄色。这是因为cython不识别numpy还是还有其他我想念的东西?

2 个答案:

答案 0 :(得分:2)

我相信你可以通过使用libc中的数学函数来获益,因为你在scalars上调用了np.sqrt和np.floor。这不仅具有Python调用开销,而且在标量和数组的numpy ufunc中存在不同的代码路径。所以这至少涉及一种类型转换。

答案 1 :(得分:0)

我认为这不是问题,因为我已经使用official tutorial进行了测试,在每个np。*行上也报告为黄色,并且python与您的代码相同。

该页面末尾的第3点应解释为:

  

调用NumPy / SciPy函数目前有一个Python调用开销;可以直接从C语言到C.(但这需要对这些库进行一些隔离和增量更改;请通过Cython邮件列表获取详细信息)。