こんにちは、なかむら(う)です。

In message "[ruby-dev:36545] Re: Encoding.default_internal   のためのパッチ"
    on Sep.25,2008 10:38:35, <duerst / it.aoyama.ac.jp> wrote:
> 一般的には Ruby の UTF-16 の処理は速くありません。
> なぜなら 1バイトごとに処理しています。
> [鬼車はそのへん違うかもしれません。]
> 更に、変換は「文字ごとに小さい関数を呼ぶ」こと
> になっていますので、そのために遅いという可能性
> もあります。(そうでない可能性もあります)
> それ以外にも考えられることは様々 (例えば正規表現
> がどのぐらい複雑ものなのか) なので、もしもう少し
> 詳しい情報がありましたら是非教えてください。

入力テキストは基本的に0x0000〜0x007Fの範囲です(なんでUTF-16な
んだよって感じですが)。
だいたい50文字〜100文字程度の長さの行を単位にして正規表現マッ
チを行っています。
正規表現は1件のグループ化を含むだけの単純なものです。
ちなみに正規表現マッチ自体はこのケースではUTF-8の方が若干速か
ったです(ほぼ誤差の範囲ですが)。

というわけで2倍の速度差というのはほぼ全て変換負荷だということ
になります。


それでは。
-- 
U.Nakamura <usa / garbagecollect.jp>