これつぐです。


すみません。
20倍速くなるのは事実ですが、真実ではありませんでした。
なぜかと言うと消費時間の大半はメモリのスワップをしていたからです。
実メモリに収まる範囲内でやってみると速度差は3倍ぐらいでした。


[ruby-list:17448] Re: faster? jlength
> 青山です。
> 
> 順番によってトータルの時間まで変わるようです。

みたいですね。
いくつかの環境で試してみましたが、
あとにやったほうが遅くなるみたいです。
なぜでしょう?

で、
先の環境(win98+cygwin)のほかにLinuxと
メモリ32Mのwin95+cygwinでも試してみました。
どの環境でもgsub<scan<splitの順で時間がかかりました。
純粋にjlengthにかかった部分を比べてみると
おおむね1:2:3といった感じのようです。
ただしスワップが始まると遅くなるのはもちろん、
win95/32Mは200万字で処理が戻ってこなくなりました。

と言うわけで、
rubyが走っている環境の大半を占めるかもしれない
win95/98とLinuxの上では20倍は嘘にしても速くなるのは確かなようです。
ついでにメモリにも優しいみたいです。