1〜2Kのファイルを読み取る場合、glob()
との間のどちらが高速ですか?opendir()
9888 次
6 に答える
10
http://code2design.com/forums/glob_vs_opendir
opendir()
ディレクトリハンドラーを開いて反復できるため、明らかに高速である必要があります。最初の引数を解析する必要があるためglob()
、さらに時間がかかります (さらにglob
、再帰的なディレクトリを処理するため、サブディレクトリをスキャンするため、実行時間が長くなります。
于 2010-05-04T06:43:57.073 に答える
9
glob
そしてopendir
、さまざまなことをします。glob
は、パターンに一致するパス名を見つけて配列でopendir
返しますが、ディレクトリ ハンドルのみを返します。と同じ結果を得るには、glob
追加の関数を呼び出す必要があります。これは、特にパターン マッチングが含まれる場合は、ベンチマーク時に考慮する必要があります。
Bill Karwinは最近、これに関する記事を書いています。見る:
于 2010-05-04T06:53:58.333 に答える
2
それが完全な比較であるかどうかはわかりませんがglob()
、シェルのようなパターンを組み込むことができますがopendir
、ディレクトリを高速化することで、そこに直接あります。
于 2010-05-04T06:40:48.203 に答える
1
ちょっとしたテストで答えることができる別の質問。412 個のものが入った便利なフォルダーがありましたが、結果はそれほど変わらないはずです。
igor47@whisker ~/test $ ls /media/music | wc -l
412
igor47@whisker ~/test $ time php opendir.php
414 files total
real 0m0.023s
user 0m0.000s
sys 0m0.020s
igor47@whisker ~/test $ time php glob.php
411 files total
real 0m0.023s
user 0m0.010s
sys 0m0.010s
于 2010-05-04T06:51:31.647 に答える