是否可以使用Cython,PyPy或Numba加速模板中的循环?
{% for student in [p for p in people if p.student and p.age > 23] %}
<li>{{ escape(student.name) }}</li>
{% end %}
如果循环可以更快地进行模板渲染,我的目的就是尝试。
Numba中的某些内容可以像
一样进行尝试def python_sum(y):
N = len(y)
x = y[0]
for i in xrange(1,N):
x += y[i]
return x
numba_sum = autojit()(python_sum)
numba_sum.func_name = "numba_sum"
如果尝试将模板作为函数传递,则会失败。
文件“C:\ Python27 \ lib \ site-packages \ numba \ dispatcher.py”,第123行,在_compile_and_call中断言不是kws AssertionError; 当我将模板称为函数
时,错误抛出答案 0 :(得分:1)
如果您在pypy中运行服务器,模板也会加速。由于模板代码是动态生成的,因此将cython用于模板是不可行的。我不熟悉numba,但是从错误消息来看,它看起来并不支持龙卷风模板广泛使用的**kwargs
构造。 Cython有一个选项always_allow_keywords
;如果numba有更简单的东西你可以使用它,但如果没有它可能不会工作。