为什么freemarker比jsp慢?
本人昨天做了这样一个测试,测试环境为:struts2+freemarker+tomcat6
在action中声明两个方法,方法中其他的都一样,就是最后return不一样
配置为:
1)、<result name="test" type="freemarker">${templePath}/vote/tmp1_vote.ftl</result>
很显然,这儿是struts2整合了freemarker
2)、getRequest().getRequestDispatcher(voteWrapper.getFilePath() + "/vote/tmp1_vote.jsp").forward(getRequest(), getResponse());
return null;
这个在action的方法中使用forward跳转。
然后使用linux中的ab测试工具进行测试,
./ab -n 10000 -c 100 "http://118.118.110.167:8181/test/jsp/baseMgnt\!initPage2.action?object.objectId=2717&object.typeId=1/"
./ab -n 10000 -c 100 "http://118.118.110.167:8181/test/jsp/baseMgnt\!initPage.action?object.objectId=2717&object.typeId=1/"
令人意外的事情发生了,测试出来的结果竟是:
第一次测试结果:
1)的tps为:7000
2)的tps为:14000
就等于说,jsp 的效率比freemarker快了整整一倍,这个与预想结果完全颠倒,不太清楚为什么了???
第二次,增加了并发数和请求数,测试结果两个都是14000,估计跟缓存有关系了
ftl和jsp中内容的区别:
jsp中使用el表达式
ftl中使用自带的标签
内容完全一样。