模板引擎翻译 List Template首页、文档和下载

      浏览:

Lite是List Template的缩写,是一个简单的模板引擎,由简单的控制指令集和表达式分析引擎组成。模板语言解析的中间格式由三种数据类型组成:数组、字符串和整数。Array 是这里唯一的复合类型,所以我使用 List Template 来命名这个模板引擎。List 和 Template 各取两个首字母组成单词 Lite。

用户不能直接编写控制指令,就像Java程序员不能直接编写字节码一样,Lite需要一个真正的源代码格式。理论上,通过这些控制指令和自定义表达式函数,我们可以支持将任何模板语法翻译成Lite可以解释的中间代码。

比如CLR需要C#、C++.net,java字节码需要Java语法;Lite 提供 XML 源代码语法作为 Lite 的默认源代码格式。

模板引擎翻译 List Template首页、文档和下载

Lite 的运行效率非常出色,是 Velocity 和 FreeMarker 的一半以上。但是对于一些表达式的计算,由于JSEL脚本和JavaScript规则的兼容性要求,以及弱类型自动转换的特性,性能不如强类型的速度。在 Velocity 和 FreeMarker 之间。

js 版本的运行时间大约比 JST 快两倍。如果算上编译时间(lite不是运行时编译的),就不是同一个数量级,没有可比性。

python版本比django模板快四倍左右!

php版本的性能较差。估计主要问题是调用php函数的开销。相比smarty编译成*终的php模板实现,在asciitable打印测试中,单进程运行一次smarty3.慢5倍(通常是网页的渲染方式)。如果单个进程重复运行 1000 次(在现实环境中不太可能发生),可能是因为 php 文件的解析和缓存慢了 smarty 9 倍(见详细数据)模板引擎翻译,如果 PHP 使用编译缓存来加快,这一差距将进一步拉大。以后可以考虑用类似lite4js的方法编译成*终代码模板引擎翻译,或者直接写一个php扩展。


参考资料

热门标签

更多 >