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/