这是用于渲染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
该基准基于Spitfire性能测试中的代码,并添加了一些模板引擎和迭代以提高准确性。最后的列表和生成器concat是经过手工编码的Python,以感受通过编译为Python字节码可达到的性能上限。优化版本在内部循环中使用字符串插值。
但是在用尽切换模板引擎之前,请确保它很重要。在编译模板引擎之间的差异开始变得重要之前,您需要进行一些非常繁重的缓存和真正优化的代码。对于大多数应用程序而言,良好的抽象工具,与设计工具的兼容性,熟悉程度及其他因素至关重要。