C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 35 を表示中)
■17575 / )  Re[18]: フォルダ内のファイル名を取得する方法
□投稿者/ 渋木宏明(ひどり) (727回)-(2008/04/27(Sun) 16:49:39)
渋木宏明(ひどり) さんの Web サイト
> FindFirstFile(), FindNextFile() APIで絞り込むと、
> そのあとのメモリ処理が少なくなる。

この時点で目立った差として表れそうなのは

・検出されたファイル名のマーシャリングのコスト
・FindFirstFile(), FindNextFile() API 呼び出しのコスト

あたりですね。

↑に比べれば、他のコストは微々たるものです。

> IOのほうは、1回目にIOキャッシュに載るので以後の実IOが少なくなる。
> の両方の効果がどれくらい顕れるかですね。

確かに。

あとちょっと気になるのは、FindFirstFile(), FindNextFile() がアトミックな操作かどうか、ですね。

FindFirstFile() を実行した時点でファイルカタログのスナップショットが作成されて、FindNextFile() がそのスナップショットの一部を返すような仕様だったりすると

・GetFiles() を1回だけ実行して自前でフィルタ処理
・GetFiles() をフィルタ付きで複数回実行して結果を合成

では結果が異なる場合があるはずです。

返信 編集キー/


管理者用

- Child Tree -