0

単純なループと再帰を使用してファイルシステムを複数回繰り返すプログラムを書いています。

問題は、私が何度も繰り返しているので、ハードドライブが特定のペースでしか動作できないため、時間がかかることです。

このプロセスを最適化する方法はありますか?たぶん、一度繰り返して、すべての関連情報をコレクションに保存し、必要なときにコレクションを参照することによって?

このように結果をキャッシュできることはわかっていますが、どうすればよいかまったくわかりません。

編集:

特定のディレクトリから取得しようとしている主な情報は3つあります。

  • ディレクトリのサイズ(そのディレクトリ内の各ファイルのサイズの合計)
  • ディレクトリ内のファイルの数
  • ディレクトリ内のフォルダの数

上記のすべてにサブディレクトリも含まれています。現在、特定のディレクトリの反復を実行して、各情報を取得しています。つまり、ディレクトリごとに3回の反復を実行しています。

私の出力は基本的に次のようなスプレッドシートです。

プログラム出力

4

2 に答える 2

1

はい、ハードドライブのI / Oを最小限に抑えるためにできることはすべて、パフォーマンスを向上させます。また、ストップウォッチを入れて所要時間を測定することをお勧めします。そうすれば、改善が速度にどのように影響しているかを知ることができます。

于 2011-08-31T16:02:04.010 に答える
1

パフォーマンスを向上させるために、NTFSファイルシステムのマスターファイルテーブル(MFT)に直接アクセスできます。MSDNソーシャルフォーラムに優れたコードサンプルがあります。MFTへのアクセスは、FindFirst/FindNextファイルを使用してファイルシステムを列挙するよりも約10倍高速であるようです。

お役に立てれば。

于 2011-08-31T17:57:59.857 に答える