锁定老帖子 主题:比Velocity快10倍的模板引擎
该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2011-09-14
指令采用 html 属性...光这个就让人快吐了。。
|
|
返回顶楼 | |
发表时间:2011-09-14
fatesymphony 写道 Engine Compile Run TPS
Freemarker 125ms 16,934ms 590t/s Velocity 110ms 19,278ms 518t/s Smarty4j 78ms 21,653ms 461t/s 10倍???楼主是从哪里算出来的?? HTTL编译速度受JDK的编译影响,比较慢,但每个模板只编译一次,说快10倍的是指模板渲染速度,也就是最后两列“Run(执行时间)”和“TPS(每秒渲染模板数)”。 |
|
返回顶楼 | |
发表时间:2011-09-14
ray_linn 写道 指令采用 html 属性...光这个就让人快吐了。。
+1 |
|
返回顶楼 | |
发表时间:2011-09-14
ray_linn 写道 指令采用 html 属性...光这个就让人快吐了。。
嗯,每个人的喜好都不一样,语法只是层壳,我也只是想做尝试。 |
|
返回顶楼 | |
发表时间:2011-09-14
最后修改:2011-09-14
javamonkey 写道 听说Smarty4j 也是编译成字节码,那速度相差怎么这么多?刚还看一文章说Smarty4j 很快~~~~~~~~~~~
Smarty4j自己生成的字节码没有JDK生成的效率高,另外,HTTL基于in="User user, Book[] books"为入口,编译的时候就进行所有变量的类型推演,保证没有任何反射调用,以及运行时类型计算,而Smarty4j需要运行时才知道变量的类型。 |
|
返回顶楼 | |
发表时间:2011-09-14
最后修改:2011-09-14
bao231 写道 感觉楼主应该说一下httl为什么比其他的快这么多,做了哪些技术优化,像温少一样,有个技术内幕之类的东西。这样才能有人用,否则大家都是一团雾水撒,谁还敢用呢,期待
![]() 说白了,就只是将模板转成Java源码,再将Java源码生成字节码,因JDK生成字节码的效率高,另外,基于强类型编译和类型推演,减少了运行时反射和判断,没什么太多内幕,看源代码就知道了,后面有空再补几个设计文档。 |
|
返回顶楼 | |
发表时间:2011-09-14
最后修改:2011-09-14
counters15 写道 开发阶段,要频繁更改,那样速度会输很多啊。
还有就是html属性,有些项目用于前端工程师写javascript了,而且好几个jquery的插件都用到Html属性,请问,会有影响吗? 会有影响,可以设置名称空间,在httl.properties配置: attribute.namespace=t <table t:if="user.role == 'admin'"> <tr t:foreach="book in books"> ... </tr> </table> |
|
返回顶楼 | |
发表时间:2011-09-14
我觉得这个不错,可以研究
|
|
返回顶楼 | |
发表时间:2011-09-14
最后修改:2011-09-14
支持楼主,除了保证速度,功能上也希望能胜过Velocity。最终还是功能取胜!
|
|
返回顶楼 | |
发表时间:2011-09-14
还有个问题,就是编辑器。freemarker的eclipse插件不是很好用。不知道楼主有没有这方面计划?
|
|
返回顶楼 | |