稲葉です.

Subject: [ruby-list:14408] goo.rb
From: Kazunori Akaishi <akaishi / nil.freak.ne.jp>
Date: Fri, 21 May 1999 10:26:54 +0900

> akaishi です。
> 
> 九大の西さんが作られた goo-0.2.rb というプログラムがあります。それは、
> WWW のアクセスログの referer の情報から、自分のページが検索エンジンでど
> のようなキーワードで検索され、アクセスされたかを調べるものですが、その 
> goo-0.2.rb を元に、ruby と perl の速度の比較をしてみました。
 	:
> 4.
	:
> ruby 版の結果   2秒58
> perl 版の結果   3秒57
> 
> ついに ruby が逆転しました。それだけ ruby の fastmap は効果があるのでしょ
> う。perl は何故か 3. のときよりも遅くなっています。
> 
> 最終的なプログラム
> http://ruby.freak.ne.jp/goo/goo4.rb     ruby 版
> 
> これと同等な perl 版
> http://ruby.freak.ne.jp/goo/goo4.pl     perl 版

この2つで, Perlに不利だと思う点が2つあります.  1つはrubyがCで書かれた
Kconv.toeucを使っているのにPerlではPerlで書かれたjcode::eucを使ってい
る点. もう一つは getkeywords 関数内で, rubyではKeyStrから作られる正規
表現を一回しかRegexp.compileしないのに, Perlでは「/$keystr/i」と毎回コ
ンパイルする事です.

> ともかく、http://www.netlab.co.jp/ruby/jp/pcjp98/page16.html に「正規表
> 現ルーチンは Perl が速い」と書いてありますが、そうとばかりもいえないよう
> です。

上の2つがこの結果にどれくらい効いているのかはさだかではありませんが, 
正規表現の照合速度の優劣を比較するのなら照合以外の要素をなるべく取り除
いておかないと, はっきりした事はいえないと思います.
--
	稲葉 浩人 <inaba / sdd.tokyo-sc.toshiba.co.jp/inaba / st.rim.or.jp>