论坛首页 Java企业应用论坛

比Velocity快10倍的模板引擎

浏览 55936 次
该帖已经被评为精华帖
作者 正文
   发表时间:2011-09-14  
指令采用 html 属性...光这个就让人快吐了。。
0 请登录后投票
   发表时间: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(每秒渲染模板数)”。
0 请登录后投票
   发表时间:2011-09-14  
ray_linn 写道
指令采用 html 属性...光这个就让人快吐了。。

+1
0 请登录后投票
   发表时间:2011-09-14  
ray_linn 写道
指令采用 html 属性...光这个就让人快吐了。。

嗯,每个人的喜好都不一样,语法只是层壳,我也只是想做尝试。
0 请登录后投票
   发表时间:2011-09-14   最后修改:2011-09-14
javamonkey 写道
听说Smarty4j  也是编译成字节码,那速度相差怎么这么多?刚还看一文章说Smarty4j 很快~~~~~~~~~~~

Smarty4j自己生成的字节码没有JDK生成的效率高,另外,HTTL基于in="User user, Book[] books"为入口,编译的时候就进行所有变量的类型推演,保证没有任何反射调用,以及运行时类型计算,而Smarty4j需要运行时才知道变量的类型。
0 请登录后投票
   发表时间:2011-09-14   最后修改:2011-09-14
bao231 写道
感觉楼主应该说一下httl为什么比其他的快这么多,做了哪些技术优化,像温少一样,有个技术内幕之类的东西。这样才能有人用,否则大家都是一团雾水撒,谁还敢用呢,期待

说白了,就只是将模板转成Java源码,再将Java源码生成字节码,因JDK生成字节码的效率高,另外,基于强类型编译和类型推演,减少了运行时反射和判断,没什么太多内幕,看源代码就知道了,后面有空再补几个设计文档。
0 请登录后投票
   发表时间: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>
0 请登录后投票
   发表时间:2011-09-14  
我觉得这个不错,可以研究
0 请登录后投票
   发表时间:2011-09-14   最后修改:2011-09-14
支持楼主,除了保证速度,功能上也希望能胜过Velocity。最终还是功能取胜!
0 请登录后投票
   发表时间:2011-09-14  
还有个问题,就是编辑器。freemarker的eclipse插件不是很好用。不知道楼主有没有这方面计划?
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics