Jos*_*son 52 python template-engine mako django-templates jinja2
Jinja2和Mako显然都非常快.
这些比较如何(功能较少但可能对我正在做的事情足够好)string.Template?
Ant*_*sma 100
以下是用于呈现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
Run Code Online (Sandbox Code Playgroud)
该基准测试基于Spitfire性能测试的代码,其中包含一些添加的模板引擎和添加的迭代以提高准确性.最后的列表和生成器concat是手工编写的Python,通过编译Python字节码来了解可实现的性能上限.优化版本在内部循环中使用字符串插值.
但在您用完切换模板引擎之前,请确保它很重要.在编译模板引擎之间的差异开始变得重要之前,您需要做一些非常繁重的缓存并真正优化代码.对于大多数应用程序而言,良好的抽象设施,与设计工具的兼容性,熟悉度和其他重要性更重要.