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

beetl预编译版本

阅读更多

beetl预编译版本经过国庆4天闭关,已经解决了主要技术和完成了部分代码,并现在做了一个性能比较,效果不错,比freemarker快40%(原有runtime版本比freemarker慢33%)。期待年底前1.0版本的正式发布

 

如下模板:

<%
var b=1;
var a=list[b+1];
%>
Hello,$a$
<%for(c in list){%>
this is $c$;
<%}%>
 

 

 

将会编译成如下代码

 

package test;
import java.util.ArrayList;
import java.util.*;
import java.io.*;
import org.bee.tl.core.*;
import org.bee.tl.core.compile.*;
/* \test\first.html is generated by beetl on 2011-10-05 04:25:33 */
public class first_html extends CompiledClass{
    public void service(Writer out,Context ctx) throws IOException,BeeRuntimeException,ClassCastException{
        ArrayList<String> list;
        try{
            list = (ArrayList<String>)ctx.getVar("list");
        }catch(ClassCastException ex){
            throw ex;
        }
        int b = 1;
        String a = list.get((b+0));
        out.write(__V0);
        out.write(a);
        out.write(__VCR);
        for(String c : list){
            out.write(__V1);
            out.write(c);
            out.write(__V2);
            out.write(__VCR);
        }
    }
    /* 原模板中的所有字符串定义到这儿*/
    private static char[] __VCR = "\r\n".toCharArray();
    private static char[] __V1 = "this is ".toCharArray();
    private static char[] __V0 = "Hello,".toCharArray();
    private static char[] __V2 = ";".toCharArray();
    /* 错误行号定义到这儿*/
 }

 

 

 

 

更新历史

2011-10-6 预编译主要部分完成,并对预编译,runtime,以及freemarker 做了性能比较,运行1000次7k的模板文件,在我笔记本上分别是0.56秒,1.05秒,0.79秒,提升幅度与原来预计差不多

并超过了freemarker.

2011-10-3 预编译关键部分做了预研,包括类型推测,很成功。

分享到:
评论

相关推荐

    Beetl模板引擎 v3.15.14.zip

    2. **模板编译**:Beetl采用预编译的方式,提高模板的执行效率。在项目启动时,会将模板编译成Java字节码,运行时直接执行,降低了解析和执行模板的时间。 3. **模板缓存**:为了进一步提升性能,Beetl支持模板的...

    基于Java的模板语言 Beetl.zip

    - **预编译**:预编译模板可以显著提升运行效率,减少解析时间。 - **模板缓存**:对经常使用的模板进行缓存,减少重复编译和解析。 - **错误处理**:Beetl提供详细的错误信息,方便开发者定位问题。 6. **社区...

    Beetl 模板语言使用指南

    - **允许优化**:通过编译模板为Class,提升性能。 - **自定义函数**:扩展模板语言的功能,满足特定需求。 - **格式化函数**:提供定制化的数据格式化。 - **严格MVC控制**:启用严格模式,分离模型和视图。 - **...

    BeetlSQL数据库访问框架 (DAO工具) v3.25.3.zip

    9. **性能优化**:BeetlSQL在性能方面进行了优化,如预编译SQL、批处理操作、结果集缓存等,确保在处理大数据量时也能保持良好的性能。 10. **社区支持和文档**:BeetlSQL有一个活跃的开发者社区,提供详细的官方...

    Java模板语言 Beetl

    - **高效性能**: Beetl通过预编译技术提高了模板解析速度,减少了运行时的内存消耗,提升了整体性能。 - **强大的标签库**: 提供了丰富的内置标签,如条件判断、循环、包含、导入、异常处理等,满足各种复杂的业务...

    基于Java的模板引擎Beet.zip

    - **模板预编译**:预编译模板可以减少运行时解析模板的时间。 - **避免过多的嵌套和复杂逻辑**:保持模板简洁,避免在模板中处理过于复杂的业务逻辑。 5. **与其他模板引擎对比**: - Beetl相比FreeMarker和...

    java数据库操作封装.zip

    3. **PreparedStatementSetter.java**: 在数据库操作中,预编译的SQL语句(PreparedStatement)能够有效地防止SQL注入,并提高性能。这个类可能定义了一个接口,用于设置PreparedStatement对象中的参数。通过实现这...

    jfinal-2.2

    4. **优化的SQL执行器**:JFinal 2.2的SQL执行器进行了优化,提升了执行效率,同时支持预编译语句,降低了SQL注入的风险。 5. **WebSocket支持**:JFinal 2.2新增了WebSocket支持,方便开发者构建实时交互的应用。 6...

    JAVA使用JDBC技术操作SqlServer数据库实例代码

    - 插入数据:在`GetInsert()`方法中,创建`PreparedStatement`对象,预编译SQL插入语句,设置参数,然后调用`executeUpdate()`执行插入操作。 - 查询数据:在`GetSelect()`方法中,创建`Statement`或`...

    J2EE博客精华

    - **Tiny Template模板引擎**:探讨如何通过优化模板引擎来提升渲染速度,例如减少不必要的内存占用、预编译模板等。 #### 6. Web开发实践 - **Tiny Web开发框架**:介绍Tiny Web开发框架的主要特性、架构设计思路...

    java开源包1

    github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...

    java开源包11

    github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...

    java开源包2

    github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...

    java开源包3

    github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...

    java开源包6

    github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...

    java开源包5

    github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...

    java开源包10

    github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...

    java开源包4

    github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...

    java开源包8

    github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...

    java开源包7

    github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...

Global site tag (gtag.js) - Google Analytics