From: Nobuhiro IMAI Date: 2008-08-30T11:14:40+09:00 Subject: [ruby-list:45435] Re: Dir[] with **/ いまいです。 From: "NARUSE, Yui" Date: Sat, 30 Aug 2008 09:55:14 +0900 > Dir["/path"].entries.sort ならば組み込みのものを使うので、 > 関数呼び出し等が減る分若干速くなる・・・かに思えるんですが、 > ソートしてもしなくても、組み込みでもブロックでもたいして変わりません。 ありがとうございます。結局はそういうことなんですね。 > 手元の環境で > * Dir["/usr"].entries > * Dir["/usr"].entries.sort > * Dir["/usr"].entries.sort{|a,b|b<=>a} > を Ruby 1.8.7 と Ruby 1.9 で試してみたのですが、 > Ruby 1.8 のブロック版が28秒な以外は、どれも 16から18秒くらいで、 > それ以上は測定ごとの誤差に埋もれてしまうくらいでした。 Dir["/usr/**/*.rb"] ということでしょうか。 > 結局、IO が遅すぎ&測定ごとにばらつきありすぎってことですかね。 > SSD とかだと違うのかもしれませんが。 後は GC でしょうか。マッチするファイル数にもよりますが、GC.disable し た方が速いようで、逆に GC.stress=true だと 1.8 では終わりそうにありま せんでした。 # それは Dir.glob とは関係ないですね…… -- Nobuhiro IMAI Key fingerprint = F39E D552 545D 7C64 D690 F644 5A15 746C BD8E 7106