なかだです。

At Sat, 6 Apr 2002 00:30:08 +0900,
tadf / kt.rim.or.jp wrote:
> ところが、StringIO は、まだあまり速くないようです。1.6 の文字列なみです。
> 
> $ cat sio.rb
> require 'stringio'
> s = StringIO.new
> 1000000.times{s.write(RUBY_VERSION)}
> puts Time.times.utime

Stringを直接使うのに比べると、余計なチェックが入る分遅くなって
るかも知れません。

> $ ruby-1.7 -v sio.rb
> ruby 1.7.2 (2002-04-04) [i386-freebsd4.5]
> sio.rb:4: warning: obsolete method Time::times; use Process::times
> 19.4609375
> 
> 1.7 では、文字列の追加が速いので、MoonWolf さんの ruby 版 StringIO を
> つかったほうが速いようです。
> 
> $ ruby-1.7 -v sio2.rb
> ruby 1.7.2 (2002-04-04) [i386-freebsd4.5]
> sio2.rb:4: warning: obsolete method Time::times; use Process::times
> 6.65625

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

$ cat sio.rb
s = StringIO.new
1000000.times{s.write(RUBY_VERSION)}
puts Process.times.utime

$ ruby-1.7 -v -rstringio.o sio.rb
ruby 1.7.2 (2002-04-04) [i686-linux]
4.63

$ head -1 stringio.rb
#StringIO version0.1 MoonWolf <moonwolf / moonwolf>

$ ruby-1.7 -v -I. -rstringio.rb sio.rb
ruby 1.7.2 (2002-04-04) [i686-linux]
14.97

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

-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦