From: Shin-ichiro HARA Date: 2002-08-19T13:13:55+09:00 Subject: [ruby-dev:18032] Re: new scope-in-state [Re: import-module (Re: Re: scope-in-state)] 原です。 >けいじゅ@日本ラショナルソフトウェアです. > >>旧scope-in-stateはメソッド検索を自前でやっていてそれがネックだったわけ > >>ですが, それをrubyのメソッド検索機構におまかせするようにしました. それ > >>とダブルディスパッチを応用したことでしょうか. > > > >なんでダブルディスパッチで高速化になるんや〜、と思ったけど > >なるほど、これは見出しのある辞書とそうでない辞書の検索時間 > >の差ですね。 > >ダブルディスパッチは高速化とは関係ないですね. いえ、ダブルディスパッチを用いる事により、呼び出すべきメソッド名 を実行時に生成することが避けられて、スピード向上に大きく貢献して いると思いますよ。このアイデアだけをもらったら確かに import-module も速くなりました。ただ、scope-in-state では他の部分つまりメソッド 検索を ruby に返す事による効果の方が大きいので目立たないのですが。 >別の継承列を呼び出すため >の手段ですので. この方法はデザインパターンとして登録したいぐらいですね >(^^;;; 別立ての継承列を平行して作り、利用するというアイデアですね。すば らしいです。 >さらに頑張りました. > >multi thread(1000000 loops in a scope) : 11.0412 >single thread(1000000 loops in a scope) : 1.5240 >scope in state(1000000 loops in a scope): 6.6583 うわ。これって、パラメータの受け渡しを途中で配列を作らず直接的に することによる効果でしょうか。 ソースも読みやすくなりましたね。(^^ import-module もアイデアのいただける所はいただいて、スピードアップ したいのですが、明日からしばらく南の島でコンピュータの無い生活を送 らなければならないのが残念です。(^^;