2009年6月22日星期一

[PerlChina] Re: 求类似Class::Accessor的推荐模块

一直以为Moose很慢。 今天作了个benchmark 发现速度还是相当不错的 快于Class::Accessor 比Class::Accessor::Fast稍慢。 
测试基于Class::Accessor中自带的那个example

            Rate  Basic  Moose   Fast Faster Direct
Basic   443645/s     --   -52%   -54%   -58%   -89%
Moose   918220/s   107%     --    -5%   -13%   -78%
Fast    961643/s   117%     5%     --    -9%   -77%
Faster 1051580/s   137%    15%     9%     --   -75%
Direct 4170019/s   840%   354%   334%   297%     --
mutators:
            Rate  Moose    Acc   Fast Faster Direct
Moose   228217/s     --   -21%   -73%   -74%   -95%
Acc     289764/s    27%     --   -65%   -67%   -93%
Fast    829929/s   264%   186%     --    -4%   -81%
Faster  867616/s   280%   199%     5%     --   -80%
Direct 4439916/s  1845%  1432%   435%   412%     --


2009/6/20 agentzh <agentzh@gmail.com>
On 6/18/09, xu zhou <redicaps@gmail.com> wrote:
Class::Accessor可以自动生成存取器,但在当前包里面不能设定属性的默认值
求推荐一个有此功能的模块

出于性能考虑,我一般使用与之兼容的 Class::Accessor::Fast 模块。默认值的设定我多是自己在构造函数里搞定,例如:

  $ perl -e 'package Dog;use base"Class::Accessor::Fast";Dog->mk_accessors("age");sub new{bless{age=>25},shift}print Dog->new->age'
  25

moose除外
太重量级还没准备好学它

嗯,Moose 功能强大,但也意味着更大的性能开销,呵呵

Cheers,
-agentzh





--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

没有评论: