あなたが興味を持っている場合に備えて、SOでも非常によく似た質問がここで尋ねられましたが、その質問の受け入れられた答えが常に当てはまるとは限りません(私のアプリケーションの使用パターンには決して当てはまりません)。
パフォーマンスを決定するコードは、FileStream コンストラクター (ファイルを開くため) と SHA1 ハッシュ (.Net フレームワークの実装) で構成されます。コードは、上でリンクした質問で尋ねられたもののほとんどの C# バージョンです。
ケース 1:アプリケーションが初めてまたは N 回目に開始されましたが、ターゲット ファイル セットが異なります。アプリケーションは、以前にアクセスされたことのないファイルのハッシュ値を計算するように指示されました。
- ~50ms
- 80% FileStream コンストラクター
- 18% ハッシュ計算
ケース 2:アプリケーションは完全に終了し、再び開始され、同じファイルのハッシュを計算するように求められます。
- ~8ms
- 90% のハッシュ計算
- 8% FileStream コンストラクター
問題
私のアプリケーションは常にケース 1を使用しています。一度アクセスしたファイルのハッシュを再計算するように求められることはありません。
したがって、私のレート決定ステップは FileStream コンストラクターです! このユースケースをスピードアップするためにできることはありますか?
ありがとうございました。
PS 統計は、JetBrains プロファイラーを使用して収集されました。