とみたまさひろ様、

早速のアドバイスありがとうございます。

やってみたら、本当に画期的に速くなりました。Ruby のマニュアルでもこの記法を確認しました。既にいろいろと配慮が行き届いているのだと感心しました。
-- 
俊(とし)


2011年2月11日13:40 とみたまさひろ <tommy / tmtm.org>:
> とみたです。
>
> On Fri, 11 Feb 2011 13:35:16 +0900
> 俊(とし) <toshio.otaguro / gmail.com> wrote:
>
>> 正規表現で繰り返し使用するリテラルを変数または定数の中に格納しておき、
>> それを #{...} で展開して使用したいのですが、この式展開はあまり速くな
>> いように見えます。例えば、
> 〜中略〜
>> というコードを走らせると、最初のループと次のループの実効速度には一桁
>> 以上の差が見られます。変数のリテラル展開は毎回変数の評価が必要なので、
>> しかたがないと思うのですが、定数はスクリプトのコンパイル時に評価でき
>> るはずなので、直接リテラルを記述するのと同程度にできるのでは?と思い
>> ます。
>
> まさにそのための機能があって、正規表現リテラルに o をつけると良いです。
> 今回の例だと /#{C0}/o
>
> --
> とみたまさひろ <tommy / tmtm.org>
> http://twitter.com/tmtms
> D68F 8F55 7F6C 5908 88EB  1EBA 25ED DEE7 BBE8 1752