以下の内容はhttps://r9.hateblo.jp/entry/20130219/p1より取得しました。


取置きとstateとMooseX::Singletonベンチマークした

Singletonパターンの前に、以前覚えたstateって最適化されて速いのかなとベンチマークしてみた。
myで外側にするのとMooseX::Singletonを比較に。


MooseX::Singletonが多機能っぽい分不利かなーとは思ってた。



20倍か。
MooseX::Singletonを外して比較。

Benchmark: timing 10000000 iterations of outer, state...
     outer:  3 wallclock secs ( 3.69 usr +  0.01 sys =  3.70 CPU) @ 2702702.70/s (n=10000000)
     state:  3 wallclock secs ( 3.54 usr +  0.00 sys =  3.54 CPU) @ 2824858.76/s (n=10000000)
           Rate outer state
outer 2702703/s    --   -4%
state 2824859/s    5%    --

何回かやってみたが若干stateの方が速い程度。


そういえばこれPerl5.14.2だった。


Perl5.16.2にして試した。

Benchmark: timing 10000000 iterations of moose, outer, state...
     moose: 133 wallclock secs (132.49 usr +  0.08 sys = 132.57 CPU) @ 75431.85/s (n=10000000)
     outer:  6 wallclock secs ( 6.34 usr +  0.00 sys =  6.34 CPU) @ 1577287.07/s (n=10000000)
     state:  6 wallclock secs ( 6.31 usr +  0.00 sys =  6.31 CPU) @ 1584786.05/s (n=10000000)
           Rate moose outer state
moose   75432/s    --  -95%  -95%
outer 1577287/s 1991%    --   -0%
state 1584786/s 2001%    0%    --

うーん全体的に5.14.2より遅くなった感じだろうか。

まとめ

  • stateはそろそろ使い慣れていきたい
  • 速度より大事なこともある。デザパタ学習とか。



以上の内容はhttps://r9.hateblo.jp/entry/20130219/p1より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14