Many Singletons Deemed Evil

| コメント(0) | トラックバック(0)



同等の機能を持ったSingletonクラスを多数と、色んな値を設定できる1つのクラス。比べてみたら差は出るだろうと思ったけど、これはひどいと思った。DateTimeではLocaleとTimeZoneはSingletonで、両方合わせて数百個ある。では、とりあえず100個のシングルトンと1個のクラスで100個のオブジェクトを作るとこんな感じ:



# 100 classes
daisuke@beefcake daisuke$ perl test.pl
Rate singleton regular
singleton 1205/s -- -12%
regular 1370/s 14% --
daisuke@beefcake daisuke$

ま、普通のクラスが速いのは当たり前だね。じゃあ1000個にすると・・・?



daisuke@beefcake daisuke$ perl test.pl
Rate singleton regular
singleton 85.5/s -- -40%
regular 143/s 67% --
daisuke@beefcake daisuke$

う、う、う、うぎゃあああああ!なんだこれ!なんだ、この67%って!なんだこの143/sって!さっきは毎秒1000回以上だったのに・・・


というわけでSingletonは必要な時にだけ使うのが正しいようです。今急に思い出したけど、Gang Of Four本にもたしかそんな事が書いてあったような気がする。


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)を出版させていただいております。できれば内容をアップデートしたいので是非皆様・・・現在の在庫処理にお力をお貸しください!><

月別アーカイブ