python - Python最快的模板系统是什么?

标签 python django-templates template-engine mako jinja2

Jinja2 和 Mako 显然都相当快。

这些与(功能较少但可能对我正在做的事情足够好)string.Template 相比如何?

最佳答案

以下是用于呈现 10x1000 HTML 表格的流行模板引擎的结果。

Python 2.6.2 on a 3GHz Intel Core 2

Kid template                         696.89 ms
Kid template + cElementTree          649.88 ms
Genshi template + tag builder        431.01 ms
Genshi tag builder                   389.39 ms
Django template                      352.68 ms
Genshi template                      266.35 ms
ElementTree                          180.06 ms
cElementTree                         107.85 ms
StringIO                              41.48 ms
Jinja 2                               36.38 ms
Cheetah template                      34.66 ms
Mako Template                         29.06 ms
Spitfire template                     21.80 ms
Tenjin                                18.39 ms
Spitfire template -O1                 11.86 ms
cStringIO                              5.80 ms
Spitfire template -O3                  4.91 ms
Spitfire template -O2                  4.82 ms
generator concat                       4.06 ms
list concat                            3.99 ms
generator concat optimized             2.84 ms
list concat optimized                  2.62 ms

基准基于 code from Spitfire performance tests添加了一些模板引擎并添加了迭代以提高准确性。最后的列表和生成器 concat 是手动编码的 Python,以了解通过编译为 Python 字节码可实现的性能上限。优化后的版本在内循环中使用字符串插值。

但在您用完切换模板引擎之前,请确保它很重要。在编译模板引擎之间的差异开始变得重要之前,您需要进行一些非常繁重的缓存和真正优化的代码。对于大多数应用程序而言,良好的抽象设施、与设计工具的兼容性、熟悉度和其他事情要重要得多。

关于python - Python最快的模板系统是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1324238/

相关文章:

java - 使用 Java 进行模板处理

python - 使用 scipy.weave.inline 时出错

python - Cython 从现有数组和变量创建新数组的最快方法是什么

java - Apache Velocity 模板语言 - 忽略无效引用

python - django - 在 templatetag 中显示 OrderedDict

javascript - 如何获取标签名称作为 Django 模板中选定/选中复选框的值

c++ - 需要一个轻量级的 C++ 模板引擎

python - 操作系统错误 : [Error 1] Operation not permitted

Python速度测试 - 时差 - 毫秒

javascript - Firefox 处理 xxx.submit(),Safari 不处理……可以做什么?