« WScriptオブジェクトの簡単ラッパーオブジェクト | トップページ | .NETのDirectory.GetFiles(,検索パターン)のワイルドカードの誤動作に注意すべし。 »

2008年4月27日 (日)

.NETでファイルを検索するときは、Directory.GetFiles(,検索パターン)を積極的に使うべし。

DBでもそうですが、「全件検索を避ける」のが鉄則です。

複数パターンの場合は、
複数回、Directory.GetFiles(,検索パターン)する。
全件検索して、その結果から自分で複数パターンでフィルタリングする。
では、どちらが速いか?

前者のほうが、後者より、一般的に速い。

また、一般的に、
IO処理よりメモリ処理が速い。
IO処理を繰り返すと遅くなる。
などの「一般常識」は、疑ってかかったほうがよいでしょう。

場合により、IO処理はメモリ処理(キャッシュ)に化け、メモリ処理はIO処理(ページング)に化けます。

塵も積もれば山となるで、速いはずのメモリ処理も数が多いと遅くなります。

« WScriptオブジェクトの簡単ラッパーオブジェクト | トップページ | .NETのDirectory.GetFiles(,検索パターン)のワイルドカードの誤動作に注意すべし。 »