ふなばです。

> しかし、さすがにそこまで遅くはなさそうなんですが。

なんでかなあ、と思って、Linux でも試してみました。Linux では、なかださ
んの言うとおりのようです。Linux のほうがどこか (メモリ管理とか) 優れて
いるのか、FreeBSD の出来が悪いのか。ともかく、Linux では問題ないが、
FreeBSD ではやけに遅い、ということのようです (他の環境ではどうなのか)。

ただ、FreeBSD でも、1.6 の String は遅いが、1.7 のほうは速い、というこ
とがあるので (偶然ではなく、意識してやってると思う)、なにかの工夫で、
劇的に改善されそうな気がします。

> いずれにしても速いに越したことはないので、無駄がないかもう少し
> 検討してみます。

うれしいです。期待してます。

$ ruby -v str.rb 
ruby 1.6.7 (2002-03-01) [i686-linux]
1.52

$ ruby-1.7 -v str.rb 
ruby 1.7.2 (2002-04-04) [i686-linux]
str.rb:3: warning: obsolete method Time::times; use Process::times
1.07

$ ruby-1.7 -v sio.rb 
ruby 1.7.2 (2002-04-04) [i686-linux]
sio.rb:4: warning: obsolete method Time::times; use Process::times
2.71

$ ruby-1.7 -v sio2.rb 
ruby 1.7.2 (2002-04-04) [i686-linux]
sio2.rb:4: warning: obsolete method Time::times; use Process::times
6.08