擅长:python、mysql、java
<p>您可以尝试以下方法:</p>
<ul>
<li><p>除了<code>@cython.boundscheck(False)</code>编译器指令,还可以尝试添加<code>@cython.wraparound(False)</code></p></li>
<li><p>在<code>setup.py</code>脚本中,尝试添加一些优化标志:</p>
<p><code>ext_modules = [Extension("accumulate", ["accumulate.pyx"], extra_compile_args=["-O3",])]</code></p></li>
<li><p>查看<code>cython -a accumulate.pyx</code>生成的.html文件,看看是否有部分缺少静态类型或严重依赖Python C-API调用:</p>
<p><a href="http://docs.cython.org/src/quickstart/cythonize.html#determining-where-to-add-types" rel="nofollow">http://docs.cython.org/src/quickstart/cythonize.html#determining-where-to-add-types</a></p></li>
<li><p>在方法的末尾添加<code>return</code>语句。目前它正在你的紧循环中做一堆不必要的错误检查。</p></li>
<li><p>不确定它是否会产生影响,但我倾向于生成循环计数器<code>cdef unsigned int</code>,而不仅仅是<code>int</code></p></li>
</ul>
<p>当<code>section_lengths</code>不相等时,您还可以将您的代码与numpy进行比较,因为它可能需要的不仅仅是一个简单的<code>sum</code>。在</p>