Bread::Boardコミッターになりました

| コメント(0) | トラックバック(0)
さっそく全部のクラスをimmutableにしてみて、差を計測してみた
# With Immutable Classes timethis 10000: 32 wallclock secs (30.82 usr + 0.26 sys = 31.08 CPU) @ 321.75/s (n=10000) # Without Immutable Classes daisuke@beefcake-7 trunk$ perl benchmark.pl timethis 10000: 75 wallclock secs (73.32 usr + 0.51 sys = 73.83 CPU) @ 135.45/s (n=10000)
わお!immutableしただけでこれかよ!
コードはこれだけだよ
use strict; use Benchmark qw(timethis); use Bread::Board; timethis(10_000, sub { my $c = container 'MyApp' => as { service 'log_file_name' => "logfile.log"; service 'logger' => ( class => 'FileLogger', lifecycle => 'Singleton', dependencies => [ depends_on('log_file_name'), ] ); container 'Database' => as { service 'dsn' => "dbi:sqlite:dbname=my-app.db"; service 'username' => "user234"; service 'password' => "****"; service 'dbh' => ( block => sub { my $s = shift; DBI->connect( $s->param('dsn'), $s->param('username'), $s->param('password'), ) || die "Could not connect"; }, dependencies => wire_names(qw[dsn username password]) ); }; service 'application' => ( class => 'MyApplication', dependencies => { logger => depends_on('logger'), dbh => depends_on('Database/dbh'), } ); }; });

Author

Daisuke Maki (a.k.a lestrrat): Perl hacker, Director of Japan Perl Association, YAPC::Asia Tokyo Organizer (2009-2012), Fluent in Japanese, English. Ex-Brazilian (sorta)

#perl #c #ruby #java #mysql #english #japanese #opensource #stf #cooking #scotch #cigar


このエントリーをはてなブックマ
ークに追加

翔泳社よりモダンPerl入門(2010)を出版させていただいております。できれば内容をアップデートしたいので是非皆様・・・現在の在庫処理にお力をお貸しください!><

月別アーカイブ