PINDちょっとだけ最適化
id:co3kたん作のPINDに手を入れてみました。コミット権限もらうか。いやそこまではいいや。どうせ ack 使うし。
PINDについては→ http://blog.co3k.org/archives/37
RecursiveIteratorIterator のコンストラクタの第2引数は RecursiveIteratorIterator::LEAVES_ONLY がデフォルト値で、ファイル内容の検索用途なら葉(leaf)以外は見る必要ないのでこっちの方が向いてます。
Index: pind.php =================================================================== --- pind.php (リビジョン 14) +++ pind.php (作業コピー) @@ -49,9 +49,7 @@ // Create an iterator for searching files under a directories $iterator = new RecursiveIteratorIterator( - new RecursiveDirectoryIterator($dirname), - RecursiveIteratorIterator::SELF_FIRST -); + new RecursiveDirectoryIterator($dirname)); // Begin searching the files while ($iterator->valid()) {
これだけでけっこうはやくなったよ。
ところで、Non-static method call の STRICTエラーが出まくるのをなんとかして欲しい。PEARライブラリが悪いのかもしれんが。
RecursiveFilterIterator 使った版も作ってみたんだけど、こっちはもうちょっとまとめてから別エントリで紹介します。