メモリマップドファイルとWindowsのイベント

前にメモリマップドファイルの話を書いたときに作ったものを、参考になる人もいるかもしれないからアップしとく。
Ruby/DLを使ってメモリマップドファイルを作成し、WindowsのEventで同期を取るプロセス分散処理。Ruby1.8専用。
http://dxruby.sourceforge.jp/files/mmtest.zip


メインのプログラムから分散クライアントのスクリプトを起動し、同じメモリを共有して、2つの分散クライアントに処理させる。
1つで実行するときと比べて2つのほうが実行時間は短くなって、確かに分散処理で速くなっていることは確認できるのだが、いかんせんDLのStructが遅すぎて、それを使わず普通に1つのプロセスで処理したほうがずっと速い。
共有メモリへの扱いやすく高速なアクセス方法を確立する必要があるのだが、それをやるにはCで拡張ライブラリを書かなければならず、そうすると実用的なインターフェイスを考えないとダメで、大変なので手をつけてない。


それはさておきwingui.rbも今回のやつも、DLを使うと1.8用になってしまうのが痛い(1.9.1のはDLという名前のDL2)。
1.8用のDL2もあるが、標準で入ってないし、入ったとしても名前が違うし、差し替えるわけにもいかないし、ということで、ユーザー的には非常に困った状態なのだ。
wingui.rbは真面目に開発しようとすると、DXRuby同様1.8/1.9.1両対応にしたいから、両方作ることになってしまう。
なんで違うものを同じ名前で入れるかなー。