175倍の2
[ 175倍: つらつらぐさ ]
なにやらきむらさんに補足されたり、まつもとさんの Twitter 経由があったりでとんでもないアクセスになっている。
で、やっぱりいろいろ切り分けるべきかなということで、少し試してみた。まず、175 倍遅いとなったのは arton さんがパッケージされた msi なのだけれど、ウィンドウが表示されるまでは時間がかかっているけれど、表示され方のすばやさとか、その後の実行のスムースさは目に見えてすばやい感じ。
いったん削除して、RubyInstaller 1.9.2-p0 をインストールしてみた。が、このパッケージには Ruby/Tk が入っていない! たまに「Ruby/Tk インストール」で検索がある理由はそういうことだったのかもしれない。Ruby/Tk は標準添付ライブラリという頭があったのだけれど。ということで、手軽な方法としたら arton さんのパッケージから lib/tk 以下をコピーしたり、lib/mswin32* 以下に tcltklib.so をコピーしたりするか、永井さんが作った Ruby/Tk Kit をコピーするかすれば使える。Ruby/Tk Kit であれば Tcl のインストールも不要ではある。
で、RubyInstaller による Ruby1.9.2-p0 の結果は、ウィンドウが表示されるまで約 4 秒ほど。ただし、多数のウィジェットが描画されていく様子が目で追えるという状況で、このあたりのすばやさは arton さんのパッケージとは雲泥の差。その後の実行でもややカクカクした印象が。(使えないということではまったくない)
ちなみに CPU は Core i5 430M 2.27GHz、メモリ 2GB、HDD 320GB。アンチウィルスは Avast! Free を使っている。
ASR1.8.7-p302 でもコンソールを開いたときの時間は瞬時なのだけれど、1.9.2-p0 のはそれにもかなり時間がかかっているので、なにかが起きているのかなあとは思うのだけれど、ほかにそういう方はいるのだろうか?(ということは ruby-list にでも出すべきかしらん)
ということで、1.9.2 が遅いというわけではないのだと思われ。
#RubyInstaller では Ruby/Tk がないために、ffi-tk とかを入れろという話らしいが、Ruby/Tk で書いたものを require を修正した程度ではうまく動作しないようでもあるので、ちょっと面倒かもしれない。
追記:(10/27)
コンソールが開かれるまでの時間は、どちらもさほど変わりはありませんでした。どうやら何度も繰り返しているときの”遅い”という印象がそのまま残ってしまっていたようです。ということで、ひとまず取り消し線。また、一応 ruby-list にも出してみましたが、下にいただいたコメントを見ると、どうやら遅くなっている原因は ActiveTcl 側との関係にありそうな気配。理由はさだかではないですけれど。
追記2:(10/27)
RubyInstaller の結果が比較的よく見えているのは、あるいは Ruby/Tk Kit を使っているせいかも。ActiveTcl ではなくてTcl をパックした(とでもいうのかな) tcltklib.so になっているようなので。
追記3:(10/28)
RubyInstaller で tk を使うのであれば、Ruby/Tk Kit を使う。他のパッケージからコピーしても動くわけではない。未確認で書いてしまったので取り消しました。
| 固定リンク
コメント
私も最新の MinGW (GCC 4.5.0) で Ruby をビルドして使っています。
そこまでではないですが、やっぱり 1.9.2-p0 の方が遅いです(1.8.7-p302 より)。
ActiveTcl 使用で、demos-jp/widget の起動だけで数秒以上、フロアプランとかだともっと顕著です。
なんか ruby -rtk -e '' だけでも 1 秒くらい遅い感じ。謎です。
別途、wxRuby もビルドしてみたのですが、なぜか so をロードするだけで 10 秒かかったりして、
これもどうしたもんかなあと。
投稿: | 2010.10.27 15:38
わたしも ActiveTcl です。
とすると、Tclの関係で理由はわかりませんけれど遅くなっているってことなんでしょうか?
確かに tk 使っていないものでは、遅いという印象は特になかったです。
便利なだけに困った問題です。
投稿: ムムリク | 2010.10.27 15:54
最初のコメントを投稿したものです。
tcltk 8.5.8 をソースからビルドしてやってみましたが、同じような感じでした。
MinGW の問題なのか、Ruby の問題なのかは分かりませんが、ActiveTcl だから、というわけではない気がします。
投稿: | 2010.10.27 18:34
わざわざありがとうございます。
とすると Windows と Ruby1.9.x と tcl の関係のどこかでなんらかの遅くなることがある、ということなのかもしれませんね。
あるいは、プログラムの仕方にもあるのかしら?
いずれにしても、ウィンドウが表示されてしまえばまったく問題ないので、ひとまずは諦めるというのが正解なのかもしれませんね。
投稿: ムムリク | 2010.10.28 10:50
海谷の凧: ruby1.9.2 + tk-win
http://kaiyanotako.blogspot.com/2010/10/ruby192-tk-win.html
を試してみました。スピードの点は感覚的なものなのですが、それほどおかしくなく動きました。ご参考まで。
投稿: jscripter | 2010.10.31 22:08
tkがはいっていないRubyInstallerに入れて使うということなのでしょうか。なるほどそういうものもあるのですね。また、試してみたいと思います。
ありがとうございました。
投稿: ムムリク | 2010.11.01 09:31
試してみたところRuby/Tk Kitと同じような印象で、よくよく見ると、作者のところには永井さんのお名前も。そしてホームページとしてリンクされているのは永井さんが提供されているページでしたので、実体は同じもののようでした。
実行結果も先にKitで試したときと同等でした。
いずれにしてもありがとうございます。
投稿: ムムリク | 2010.11.01 11:29