Enjoy 4.8 发布,性能碾压 Freemarker、Velocity、Thymeleaf

栏目: 软件资讯 · 发布时间: 6年前

内容简介:Enjoy Template Engine 采用独创的 DKFF (Dynamic Key Feature Forward) 词法分析算法以及独创的DLRD (Double Layer Recursive Descent) 语法分析算法,极大减少了代码量,降低了学习成本,并提升了用户体验。 与...

    Enjoy Template Engine 采用独创的 DKFF (Dynamic Key Feature Forward) 词法分析算法以及独创的DLRD (Double Layer Recursive Descent) 语法分析算法,极大减少了代码量,降低了学习成本,并提升了用户体验。

    与以往任何一款 java 模板引擎都有显著的不同,极简设计、独创算法、极爽开发体验,从根本上重新定义了模板引擎,这里是首版发布时的盛况,传送门:JFinal 3.0 发布,重新定义模板引擎

    Enjoy 模板引擎专为 java 开发者打造,所以坚持两个核心设计理念:一是在模板中可以直接与 java 代码通畅地交互,二是尽可能沿用 java 语法规则,将学习成本降到极致。

    因此,立即掌握 90% 的用法,只需要记住一句话:JFinal 模板引擎表达式与 Java 是直接打通的。

    本次 Enjoy 4.8 最重要的改进是引入动态编译技术性能提升 12.9%,性能碾压 Freemarker、Velocity、Thymeleaf, 以下是 Intel Core i7 2.2G 机器上的性能测试结果:

Enjoy 4.8 发布,性能碾压 Freemarker、Velocity、Thymeleaf

    Enjoy 的性能是 Thymeleaf 的 9.68 倍,是 Freemarker 的 3 倍,是 Velocity 的 2.86 倍,由于 Freemarker、Velocity、Thymeleafe 不支持 byte 模式,以上仅测试了 char 模式,在 byte 模式下 enjoy 性能将领先更多倍数。

以上测试使用 Java 基准测试框架 JMH,测试源码:

https://gitee.com/jfinal/template-benchmark

注意:Enjoy 的运行时编译技术仍然支持动态类型,某些模板引擎在使用 asm/cglib 运行时修改字节码优化性能以后不再支持动态类型,是得不偿失的做法,因为动态类型是现代模板引擎必须的特性

 

Enjoy 4.8 changelog:

1:新增 FastFieldGetter,支持动态类型的前提下性能提升 12.9%

2:添加 Engine.setFastMode(boolean),用于配置极速模式

3:新增 addDirective(.., .., boolean keepLineBlank) 方法,支持指令独占一行时保留前后空白字符:与输出指令 #() 行为一样

4:#date、#number、#escape 等输出型指令,配置成 keepLineBlank = true

5:优化注释对输出格式的影响,注释与指令处于同一行时保留行尾的换行字符(注释处在独立行时无此问题)

6:优化 FastStringWriter 性能

7:ByteWriter、CharWriter 递归优化为 while 循环

8:优化 #escape 指令性能,StringBuilder 字符串拼接改为直接向 Writer 输出

9:输出指令 Output 去掉对 Boolean 类型的判断

10:添加 Engine.removeSharedObject(...) 方法,可配合 addSharedObject(...) 支持动态切换共享对象,适用更多应用场景

11:添加 JdkEncoderFactory 方便配置 Engine.setToJdkEncoderFactory() 支持 utf8mb4 编码的 emoji 表情

12:改进 Utf8Encoder,在极端情况下碰到无法编码的字符时,抛异常改为输出问号,提升用户体验

13:EngineConfig.getSharedObjectMap() 改为 public 可见性

14:Template 添加无参 renderToString() 方法

15:添加 NullMethodInfo,简化代码提升性能

16:Scope 中的 getGlobal、setGlobal、removeGlobal 支持顶层 data 为 null

17:#set 系列指令放开对于自增、自减表达式的使用限制

 


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。

运营笔记

运营笔记

类延昊 / 天津人民版社 / 2016-12-1 / CNY 39.80

运营是入门浅但学问深的行当。一个入门很久的人不见得能在11年内爬到塔尖,同样一个初入龙门的人占据高位也不见得非用11年。 到底该怎么做运营?如何做运营才不至于让自己忙死累死甚至茫然不知所措?如何和用户进行有效沟通?如何把握住处于塔尖20%的核心用户?如何强敌逼阵时快速找到突破口?如何挤破头皮提高转化率? 在这本书里,类类以自己常年战斗在一线摸爬滚打的经验给予了有效而真诚的解答。一起来看看 《运营笔记》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具