免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 6507 | 回复: 13

模板选择,效率评测Template,Text::Xslate,Mojo::Template [复制链接]

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2013-11-01 11:24 |显示全部楼层
我认为认为模板的效率在一般的站点不太会成为速度瓶颈。所以一直用了N年Template-Toolkit。之前还用过Mason和HTML::Template,最后感觉Template-Toolkit更适合我。
直到,发现了小日本的这个http://xslate.org/benchmark.html。为此,去年换了Xslate。再后来是前两周开始用Mojolicious,作者喜欢发明轮子,所以就有了Mojo::Template。(这里顺便一提,作者在解释为什么要重新发明轮子的时候这样说“Because we can make them rounder.”这说法够拽,以后我就和经理这么说。)

我测试了一下Text::Xslate和Mojo::Template,代码如下:
  1. use Mojo::Template;
  2. use Text::Xslate;
  3. use Benchmark qw/timethese cmpthese/;

  4. my $result = timethese(
  5.     10000,
  6.     {
  7.         mojo_template => sub {
  8.             my $mt = Mojo::Template->new;
  9.             $mt->render('Hello World');
  10.         },
  11.         text_xslate => sub {
  12.             my $tx = Text::Xslate->new;
  13.             $tx->render_string('Hello World');
  14.           }
  15.     }
  16. );

  17. cmpthese($result);
复制代码
在一个比较老的双处理器(一共4核)的机器上的到下面的结果:
  1. Benchmark: timing 10000 iterations of mojo_template, text_xslate...
  2. mojo_template:  3 wallclock secs ( 2.48 usr +  0.00 sys =  2.48 CPU) @ 4032.26/s (n=10000)
  3. text_xslate: 21 wallclock secs (20.77 usr +  0.04 sys = 20.81 CPU) @ 480.54/s (n=10000)
  4.                 Rate   text_xslate mojo_template
  5. text_xslate    481/s            --          -88%
  6. mojo_template 4032/s          739%            --
复制代码
后来看到http://xslate.org/benchmark.html提到xslate要在好的服务器上测试才能发挥性能。
好,换一个双处理器24核的新机器上再测,结果:
  1. Benchmark: timing 10000 iterations of mojo_template, text_xslate...
  2. mojo_template:  2 wallclock secs ( 1.84 usr +  0.00 sys =  1.84 CPU) @ 5434.78/s (n=10000)
  3. text_xslate: 13 wallclock secs (13.22 usr +  0.02 sys = 13.24 CPU) @ 755.29/s (n=10000)
  4.                 Rate   text_xslate mojo_template
  5. text_xslate    755/s            --          -86%
  6. mojo_template 5435/s          620%            --
复制代码
看来是时候换模板了。也省得用我用Mojolicious还得通过plugin来支持Xslate并使用TT的语法。只是还得花时间看一下Mojo::Template的语法。
几周前我这里用的从模块到webserver,很大一部分都是日本制造。等我把模板也换了,我这里就再没有日本制造的任何东西了。

论坛徽章:
0
发表于 2013-11-01 15:38 |显示全部楼层
很惊讶,之前看过那个模板评测的文章,当时貌似没有提到Mojo的template,总之以为Text::Xslate确实很牛x,没想到Mojo确实发明了更加rounder的轮子啊!
我看lz的测试,我还想是不是纯文本的模板体现不了Text::Xslate的性能,又本地测试了下有变量处理的模板,在T420的本子上测试,Text::Xslate还是比Mojo::Template要慢6倍不止啊……

论坛徽章:
1
辰龙
日期:2014-05-15 19:37:15
发表于 2013-11-01 16:04 |显示全部楼层
本帖最后由 iakuf 于 2013-11-01 16:05 编辑

我现在可是在我的分布式文件系统中大量的使用了 Mojolicious.........性能真的很好,关键是功能强大....越玩你会发现 Dancer 比起来就是个半成品.

论坛徽章:
46
15-16赛季CBA联赛之四川
日期:2018-03-27 11:59:132015年亚洲杯之沙特阿拉伯
日期:2015-04-11 17:31:45天蝎座
日期:2015-03-25 16:56:49双鱼座
日期:2015-03-25 16:56:30摩羯座
日期:2015-03-25 16:56:09巳蛇
日期:2015-03-25 16:55:30卯兔
日期:2015-03-25 16:54:29子鼠
日期:2015-03-25 16:53:59申猴
日期:2015-03-25 16:53:29寅虎
日期:2015-03-25 16:52:29羊年新春福章
日期:2015-03-25 16:51:212015亚冠之布里斯班狮吼
日期:2015-07-13 10:44:56
发表于 2013-11-01 16:05 |显示全部楼层
这模板语言直接用 Perl 语法少的可怜,用正则表达式都能直接转换成 Perl 的函数了吧

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2013-11-01 17:49 |显示全部楼层
回复 3# iakuf

恩,我也在把生产环境的项目逐步转到Mojolicious上来,得先培训,大家都熟悉dancer了。
dancer和Mojolicious比起来,的确是太单纯了。Mojolicious里面有太多好用的东西,有太多以前实现不了但现在能轻易就能实现的东西。
   

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2013-11-01 17:52 |显示全部楼层
回复 4# zhlong8

我还是不习惯模板里写太多perl的东西,弄的跟PHP/JSP似的。。。前面的东西就弄的很简单,让做前台页面的不会perl的人能很容易看明白就是最好的了。便于分工合作。
   

求职 : 软件工程师
论坛徽章:
3
程序设计版块每日发帖之星
日期:2015-10-07 06:20:00程序设计版块每日发帖之星
日期:2015-12-13 06:20:00程序设计版块每日发帖之星
日期:2016-05-05 06:20:00
发表于 2013-11-01 19:10 |显示全部楼层
要不要做个模板转换程序?

论坛徽章:
5
丑牛
日期:2014-01-21 08:26:26卯兔
日期:2014-03-11 06:37:43天秤座
日期:2014-03-25 08:52:52寅虎
日期:2014-04-19 11:39:48午马
日期:2014-08-06 03:56:58
发表于 2013-11-01 20:05 |显示全部楼层
回复 7# 104359176


    要, please. thanks!

求职 : 软件工程师
论坛徽章:
3
程序设计版块每日发帖之星
日期:2015-10-07 06:20:00程序设计版块每日发帖之星
日期:2015-12-13 06:20:00程序设计版块每日发帖之星
日期:2016-05-05 06:20:00
发表于 2013-11-01 20:42 |显示全部楼层
Template-Toolkit -> Mojolicious Mojo::Template?

论坛徽章:
0
发表于 2013-11-01 23:14 |显示全部楼层
我一直用Template::Toolkit, 在mod_perl环境下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP