Thymeleaf和Beetl生成静态化页面速度的简单测试

项目地址:
1.Thymeleaf项目GitHub地址
2.Beetl项目GitHub地址

3.Thymeleaf主要代码

public class StaticUtil{

    private static final String TEMPLATE_PREFIX = "templates/";
    private static final String TEMPLATE_SUFFIX = ".html";

    public static void makeThymeleaf(String objectName,Object objectValue,String oldFileName,String newFileName){
        try {
            ClassLoaderTemplateResolver resolver = new ClassLoaderTemplateResolver();
            resolver.setPrefix(TEMPLATE_PREFIX);
            resolver.setSuffix(TEMPLATE_SUFFIX);
            resolver.setCharacterEncoding("GBK");
            resolver.setCacheable(false);
            TemplateEngine templateEngine = new TemplateEngine();
            templateEngine.setTemplateResolver(resolver);


            //填充数据
            Context context = new Context();
            context.setVariable(objectName,objectValue);

            // 渲染模板
            FileWriter writer = new FileWriter( "d:/S/springboot-helloworld/src/main/resources/templates/"+ newFileName +".html");
            templateEngine.process(oldFileName,context,writer);
        } catch (
            IOException e) {
            e.printStackTrace();
        }

    }

}



    
    显示全部用户
    
    
    
    
    


全部用户信息
编号 用户名 密码 电话 注册时间 权限

4.Beetl主要代码

public class StaticUtil {

    public static void makeBeetl(String objectName,Object objectValue,String oldFileName,String newFileName){
        try{
            String root = System.getProperty("user.dir") + File.separator + "/src/main/resources/templates";
            FileResourceLoader fileResourceLoader = new FileResourceLoader(root,"GBK");
            Configuration cfg = Configuration.defaultConfiguration();
            GroupTemplate gt = new GroupTemplate(fileResourceLoader,cfg);
            Template t = gt.getTemplate("/" + oldFileName + ".html");
            t.binding(objectName,objectValue);
            FileWriter fileWriter = new FileWriter("d:/S/springboot-beetl/src/main/resources/templates/" + newFileName + ".html");
            t.renderTo(fileWriter);

        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}



    
    显示全部用户
    
    
    
    
    


全部用户信息
<% for(user in usersInfo) {%>
编号 用户名 密码 电话 注册时间 权限
${user.id} ${user.username} ${user.password} ${user.telephone} ${user.registerTime} ${user.popedom==0?'管理员':'普通用户'}
<% } %>

这里说一下测试方法:
测试的是生成静态化页面的速度,不包括浏览器页面的渲染速度等等,我是在调用StaticUtil函数之前得到Date.getTime(),然后生成完静态化页面后再取得一次Date.getTime(),两次时间做差得到静态化页面的速度。
数据展示:
Thymeleaf和Beetl生成静态化页面速度的简单测试_第1张图片最后一列是Thymeleaf的平均值/Beetl的平均值。100条指代静态化100条数据,以此类推。平均值去除一个最大一个最小,表格中红色字体代表此数据去除。
由此可以看出Beetl生成静态化的速度快于Thymeleaf。

备注:
评论区有前辈说resolver.setCacheable(true);开启缓存是否能更快,这里我测试的方法是每次生成静态页面后删除,下次重新生成静态页面,所以是否开启缓存不会影响第一次生成静态页面的速度。

你可能感兴趣的:(Thymeleaf和Beetl生成静态化页面速度的简单测试)