perl 5.8.8 で GuardScope::Guardを比較してみた。関数が終了したタイミングでコールバックが走るようにした状態で比較。Guardはスコープ終了時に走るscope_guard()とダイナミックガードであるguard()両方で試してみた。
use strict; use Benchmark qw(cmpthese); use Scope::Guard; use Guard; cmpthese(500_000, { scope_guard => sub { my $guard = Scope::Guard->new(sub { 1 }); }, guard_dynamic => sub { my $guard = guard { 1 }; }, guard => sub { scope_guard { 1 }; } });
結果はGuard.pmの*圧勝*
Rate scope_guard guard_dynamic guard scope_guard 204918/s -- -61% -71% guard_dynamic 531915/s 160% -- -24% guard 704225/s 244% 32% --
mlehman恐るべし。

DBIx::Classもこれ使えばいいのに。 Scope::Guard使ってなかった><

カテゴリ

トラックバック(0)

このブログ記事に対するトラックバックURL: http://mt.endeworks.jp/cgi-bin/mt-tb.cgi/2421

コメントする

筆者

daisuke - a.k.a. "lestrrat", Perl hacker at Livedoor Inc, Japan Perl Association 代表理事

このブログ記事について

このページは、Dが2009年12月 2日 23:42に書いたブログ記事です。

ひとつ前のブログ記事は「筋子ぉッ」です。

次のブログ記事は「本日の歩き」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.1