わたなべです.

Yukihiro Matsumoto <matz / netlab.co.jp> writes:

:In message "[ruby-list:17434] faster? jlength"
:    on 99/10/06, Koretsugu Daigoro <tmmcross / hk.airnet.ne.jp> writes:
:
:|200万字近くある日本語のファイルにまとめてjlengthしたところ、
:|処理がなかなか戻ってこなくて悲しくなりました。
:
:手元にはこんなでかいファイルがないんで確認できないんですが、

なければ 'あ' * 2_000_000 でいいじゃんって気もするけど,
cygwin 版が遅いのは例によって realloc がとても遅いというの原
因でしょう.
と思って試したら split のほうが速いなあ.
cygwin1.dll の version, NT と 98, free memory とかそういうの
も関係してくるのかもしれない.

require 'jcode'
class String
  def jlength2
    gsub(/./p, ' ').length
  end
end
a = 'あ' * 2_000_000
t = Time.now
p a.jlength
t1 = Time.now
p a.jlength2
t2 = Time.now

p [t1 - t, t2 - t1]

結果:
2000000
2000000
[148.163, 439.012]

-- 
わたなべひろふみ