なかだです。 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はできる。 中田 伸悦