-1

私はそのような構造の多くのフォルダにたくさんの小さな(10KB-1MB)ファイル(約10M)を持っています:

 - LEVEL 1 
  - LEVEL 2
   - LEVEL 3
    - file 1;
    - file 2; 
    ...

(ファイルはUSB3.0 1TBディスクに保存されます。ファイルの合計サイズは約700MBです)

また、ファイルハッシュの同じディスク(Microsoft Access 2007)上のデータベース:

 file 1 - hash 1;
 file 2 - hash 2;
 ....

毎日、各ファイルのハッシュを計算し、変更されたファイルのリストを取得する必要があります(存在する場合)。

スクリプトの作業時間を最小限に抑えるための適切なアルゴリズムを作成するにはどうすればよいですか?私はいくつかのボトルネックがあると思います:

  • ディスクI/O-ディスク読み取りをどのように最適化しますか?
  • データベース読み取りの問題-Accessは1,000万行のテーブルでどのように機能しますか?
  • CPU-ハッシュ計算を並列化する必要がありますか?
  • 私はC#が好きですが、別の言語が必要なのかもしれません。
  • ファイルの代わりにdirのハッシュを計算する方が効果的ですか?

他に何か?

4

1 に答える 1

1

車輪を再発明しないでください - md5deep/hashdeepは何年も前から存在しており、まさにこれを行っています。これはクロスプラットフォームであり、Windows 上で実行され、C# から外部プロセスとして呼び出すことができます。

于 2013-01-16T11:19:27.093 に答える