わたなべです. 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] -- わたなべひろふみ