`
javamonkey
  • 浏览: 166680 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

beetl功能与Freemarker功能比较

 
阅读更多

东西好不好,先比一下功能,拿目前最流行的Freemarker来做比较


完全参考了
Freemarker 官方文档( 2.3.19 第一列是freemarker官方文档目录,第二列是表示 beetl 中是否具有同样的功能

通过下列表格,可以看出绝大部分功能, beetl 都是支持的


 

功能

是否支持

备注

1.1 简介

支持

 

1.2 模板 + 数据模型 = 输出

支持

 

1.3 数据模型一览

支持

 

1.4.1 简介

支持

 

1.4.2 (.1--.4) 指令示例

支持

Beetl 中,采用includeFileTemplate 标签来include 一个文件。Beetl 中还支持switch/case

1.4.2.5 处理不存在的变量

支持

不支持询问变量是否存在, 但可以通过扩展函数来支持

2.1 基本内容

支持

 

2.2.1 类型 简介

大部分支持

很少使用的节点类型 不支持

2.2.2 标量

支持

 

2.2.3 容器

支持

 

2.2.4 方法和函数

支持

可以通过扩展函数来间接支持

2.2.5 其它(节点类型)

不支持

 

3.1 总体结构

支持

 

3.2 指令

支持

 

3.3 表达式

支持

集合操作不支持,但可以通过扩展函数来实现集合操作。

截取字符串也不是内置的,但可以通过扩展函数来实现,如str.subString

3.3.3.1 字符串

支持

 

3.3.3.2 数字

支持

 

3.3.3.3 布尔值

支持

 

3.3.3.4 序列

支持

采用js 语法的json 格式支持。但不包括支持 start ..end 这样的方式

3.3.3.5 哈希表

支持

 

3.3.4 检索变量

支持

 

3.3.5 字符串操作

不支持

此语法很奇怪,只能说freemaker 复杂了语法

3.3.5.2 获取一个字符

支持

通过扩展函数支持

3.3.6.1 序列操作 连接

支持

通过扩展函数支持

3.3.6.2 序列切分

支持

通过扩展函数支持

3.3.7 哈希表操作 连接

支持

 

3.3.8 算数运算

支持

 

3.3.9 比较运算

支持

 

3.3.10 逻辑操作

支持

 

3.3.11 内建函数

支持

 

3.3.13 处理不存在的值

支持

通过扩展函数支持

3.3.13.1 默认值

部分支持

 

3.3.13.2 检测不存在的值

支持

 

3.3.14 括号

支持

 

3.3.15 表达式中的空格

支持

 

3.3.16 操作符的优先级

支持

数字范围 这个概念

3.4 插值

支持

 

4.1 自定义指令 (宏)

支持

间接通过标签等支持

4.1.4 嵌套内容

支持

Beetl 中主要用在layout 标签里

4.1.5 宏和循环变量

支持

 

4.2 在模板中定义变量

支持

 

4.3 命名空间

部分支持

通过扩展函数支持,

4.4 空白处理

支持

Beetl 中不需要此额外功能

4.5 替换(方括号)语法

支持

 

 

东西好不好,再比一下性能,那被公认为性能良好的Freemarker做比较

性能比较

单线程:

 

还是以常用模板为准(大小6K ),循环渲染50000 次,需要时间(毫秒为单位)如下

 

Beetl1.2M1 解释执行方式(普通模式),运行三次,分别 1356,1365,1348
Beetl1.2M1
编译执行方式(普通模式),运行三次,分别 913,922,905
Freemarker
分别是 1155,1130,1122
Beetl1.2M1
允许字节流优化,解释方式执行三次,分别是 587,605,610
Beetl1.2M1
允许字节流优化,编译方式执行三次,分别是 385,355,370

简而言之,对beetl 做运行时编译,byte 输出设定后,渲染5 万次6K 的模板,性能如下

Freemarker

Beetl

1140 毫秒

370 毫秒

 


及时不对beetl 做任何优化,性能也与Freemarker 持平


最后,向给位有志从事开源开发的朋友号召,无论你是工作10+年的老手,还是在学习就读的学生,如果愿意从事beetl开发和维护,我非常欢迎。我用了很多业余的精力去一个人搞一个开源的方方面面的工作,感到非常费神。我希望找一个能力突出,愿意去维护beetl开源的人。有想法可以留言。

分享到:
评论
5 楼 javamonkey 2016-11-21  
https://my.oschina.net/xiandafu/blog/789438
beetl 国内下载量貌似快跟freemaker的差不多了
4 楼 laj76333 2016-02-29  
支持标签嵌套吗?<%{}%><%{}%><%{}%><%{}%><%{}%>
3 楼 javamonkey 2015-11-27  
支持,去ibeetl.com 上了解吧
2 楼 laj76333 2015-11-26  
支持标签吗?<%{}%><%{}%><%{}%><%{}%><%{}%>
1 楼 酷沃哦 2015-03-25  
beetl支持集群吗?

相关推荐

    Beetl模板引擎入门教程.pdf

    Beetl是一款6倍于Freemarker的超高性能的java模板引擎,来自于中国!!BeetlSQL是一款功能强大,以SQL为中心,使用简单的全功能的ORMapping工具,支持自动生成代码

    Beetl 模板语言使用指南

    beetl具有目前流行的模板引擎所支持的功能,如具有 freemarker 所提供的绝大部分功能。并且,并有有些独特功能是这些有10年以上历史模板引擎所不具备的。

    spring boot集成beetl极简入门实例.zip

    4、易于整合:Beetl 能很容易的与各种 web 框架整合,如 Spring MVC,JFinal,Struts,Nutz,Jodd,Servlet 等。 5、支持模板单独开发和测试,即在 MVC 架构中,即使没有 M 和 C 部分,也能开发和测试模板。 6、扩展...

    Beetl模板引擎-其他

    关于性能:通过与主流模板引擎Freemarker,Velocity以及JSP对比,Beetl均远高于前面三个,这是因为宏观上,通过了优化的渲染引擎,IO的二进制输出,字节码属性访问增强,微观上,通过一维数组保存上下文,合并静态...

    spring-boot-demo:BootSpring Boot演示入门样例,包括属性(配置),JDBC模板(数据库CRUD),JPA(Hibernate数据库CRUD),Mybatis(数据库CRUD),Mybatis(Mybatis数据库CRUD),thymeleaf(模板解析),beetl(模板)解析),freemarker(模板解析),享受(模板解析),logback(日志),log-aop(AOP方式日志),ehcache(ehcache缓存),执行器(监控),admin(监控),swagger

    JPA(Hibernate数据库CRUD),Mybatis(数据库CRUD),Mybatis(Mybatis数据库CRUD),thymeleaf(模板解析),beetl(模板解析),freemarker (模板解析),enjoy(模板解析),并包含一些整合多个功能模块的090-...

    MyExcel多功能Excel工具包-其他

    支持多种模板引擎:已内置Freemarker、Groovy、Beetl、Thymeleaf等常用模板引擎Excel构建器(详情参见文档Getting started),推荐使用Beetl模板引擎(Beetl文档); 提供默认Excel构建器,直接输出简单Excel:无需...

    MyExcel多功能Excel工具包 v3.9.5

    支持多种模板引擎:已内置Freemarker、Groovy、Beetl、Thymeleaf等常用模板引擎Excel构建器(详情参见文档Getting started),推荐使用Beetl模板引擎(Beetl文档); 提供默认Excel构建器,直接输出简单Excel:无需...

    JAVA上百实例源码以及开源项目源代码

    2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性...

    JAVA上百实例源码以及开源项目

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...

    java开源包1

    Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...

    java开源包11

    Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...

    java开源包2

    Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...

    java开源包3

    Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...

    java开源包6

    Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...

    java开源包5

    Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...

    java开源包10

    Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...

    java开源包4

    Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...

    java开源包8

    Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...

    java开源包7

    Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...

Global site tag (gtag.js) - Google Analytics