锁定老帖子 主题:比Velocity快10倍的模板引擎
该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2011-09-15
bao231 写道 还有就是有人自定义类型冲在了equle和hashcode的方法,你能保证他们的identityHashCode一样吗?
switch优化只针对基本类型,如果case的值不是字面的,不会优化,因为实际使用中,模板中条件以及输出都是使用基本类型的数据,不管是POJO, Map, List,最终的叶子属性节点都是基本类型。 |
|
返回顶楼 | |
发表时间:2011-09-15
为什么不做一些别人没做过的东西?
|
|
返回顶楼 | |
发表时间:2011-09-15
各种爱好而已,
|
|
返回顶楼 | |
发表时间:2011-09-15
bewithme 写道 为什么不做一些别人没做过的东西?
学习,爱好,兴趣,就算是模仿,那也不错啊。 有一句话叫不要重复造轮子,但100年前的轮子和现在的轮子,一样么? |
|
返回顶楼 | |
发表时间:2011-09-16
只能适用于html,这样的局限性,速度应该比velocity快
|
|
返回顶楼 | |
发表时间:2011-09-16
论据不充分!
|
|
返回顶楼 | |
发表时间:2011-09-19
javatar 写道 sslaowan 写道 javatar 写道 bao231 写道 感觉楼主应该说一下httl为什么比其他的快这么多,做了哪些技术优化,像温少一样,有个技术内幕之类的东西。这样才能有人用,否则大家都是一团雾水撒,谁还敢用呢,期待
![]() 说白了,就只是将模板转成Java源码,再将Java源码生成字节码,因JDK生成字节码的效率高,另外,基于强类型编译和类型推演,减少了运行时反射和判断,没什么太多内幕,看源代码就知道了,后面有空再补几个设计文档。 那为啥不用jsp标签呢? JSP的标签有Tag扩展点(JSTL是基于Tag扩展点的),实际上是解释执行的,EL也是解释执行,而且在编译期不知道参数类型,不能在编译期推演变量类型,在解释时会慢一些。 为什么你会认为JSP标签是解释型的?怎么理解你的解释执行?起码Tomcat对于JSP标签是生成了具体的Java代码,然后调用对应的类的方法去执行。 |
|
返回顶楼 | |
发表时间:2012-06-11
javatar 写道
agapple 写道
你这里说是减少boxed/unboxed的处理,主要是体现在哪个方面?默认都转化成对象处理吗?
一般的模板引擎都将数字boxed成Object再处理,因为要反射,而模板上大量使用基本类型输出,优化是有意义的。
1.你得意思是把包装类全部翻译成数值类型处理,再用工具类实现包装类的方法吗? 2.减少int到Integer等元类型的boxed和unboxed,以及instanceof。出现instanceof的地方也一样,会尽量多态处理 关于instanceof的转化怎么实现呢?如果接口里面没有需要调用的的方法,你会手动再编译一个临时接口吗?前面讲已经定义好了变量的强类型,这种转换还有必要不 |
|
返回顶楼 | |
发表时间:2012-06-11
感觉楼主的思路还是有很多可取之处的,精华奉上.
|
|
返回顶楼 | |
发表时间:2012-06-11
javatar 写道
bao231 写道
System.identityHashCode(user.role),这个hashcode根据对象的地址的算的,你这样搞,会有问题的
嗯,知道identityHashCode是对象的地址,所以如果是字符串会先intern(),另外,因为条件上的"admin"和"member"是字面值,没有new String(),还有一个就是因为是实时编译,所以地址是相等的。
|
|
返回顶楼 | |